P. 1
c7 APROXIMAREA FUNCTIILOR

c7 APROXIMAREA FUNCTIILOR

|Views: 57|Likes:
Published by Alecsmester

More info:

Published by: Alecsmester on Feb 19, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

01/09/2013

pdf

text

original

Interpolarea Lagrange èi spline-cubic

De foarte multe ori se cunosc valorile unei func ii f(x) pe un set de puncte x1, x2, x3, «, xn, dar nu se cunoa te expresia analitic pentru f(x) astfel încât este imposibil calculul func iei f pe un punct arbitrar. De exemplu f(xi) pot fi valori rezultate din m sur tori fizice sau dintr-un calcul numeric lung care nu poate fi exprimat într-o simpl form func ional . În asemenea situa ii se impune aproximarea func iei de evaluat prin procedee numerice. Problema se pune de a estima valoarea f(x) pe un punct arbitrar x astfel încît s putem s reprezent m grafic o curb neted prin sau în apropiere de punctele date xi pe axa Ox. Dac punctul x pe care se caut valoarea func iei este cuprins între cel mai mic i cel mai mare punct dat din setul xi, problema se nume te interpolare; dac x este în afara domeniului dat în tabel, avem dea face cu procedura de extrapolare, care este considerat adesea o problem mai dificil de rezolvat.

Schemele de interpolare i extrapolare trebuie s modeleze func ia prin sau dea lungul punctelor cunoscute prin forme func ionale simple pentru situa ia dat . Forma func ionalei trebuie s fie totu i suficient de general astfel încît s fie capabil s aproximeze o clas larg de func ii care pot ap rea în practic . Cele mai folosite forme aproximante pentru func ionale sunt cele din clasa polinoamelor. Func iile ra ionale sunt deasemenea o categorie extrem de util în aproximarea func ionalelor. Func iile trigonometrice, sin i cos, sunt potrivite pentru interpolarea trigonometric sau pentru metodele de tip Fourier. Aproximarea func iilor const în determinarea unei func ii aproximative, u or calculabil , care s înlocuiasc o func ie mult mai complicat i s permit evaluarea acesteia în orice punct ales. În cazul interpol rii se d func ia f prin valorile ei pe un num r finit de puncte i se aproximeaz acestea printr-o alt func ie a c rei formul analitic este relativ simpl . A adar în cazul aproxim rii func iilor se creeaz posibilitatea de calcul a valorilor func iei f pe orice punct dorit de pe axa Ox, depinzând de aproximarea dezvoltat .

Altfel spus, scopul de baz al interpol rii este interpolarea datelor cunoscute pe puncte discrete astfel încît valorile func iei cuprinse între aceste puncte date s poat fi estimate. Cunoa terea i în elegerea aproxim rii func iilor permite extinderea i folosirea tehnicilor de interpolare în dezvoltarea diferitelor metode numerice. Se cunoa te c schemele de integrare numeric sunt derivate din integrarea polinoamelor de interpolare. Aproximarea cu diferen e finite, baza de construc ie a metodei diferen elor finite, este deasemenea ob inut cu polinoame de interpolare. Din acest motiv este esen ial studiul expresiilor polinoamelor de interpolare, acurate ea lor i efectele select rii punctelor ca date. Exist diferite c i de exprimare a polinoamelor de interpolare, cu serii de puteri, cu forma de interpolare Lagrange, cu forma de interpolare Hermite sau Birkoff, etc.

Aproximarea prin interpolare se poate realiza i pentru functii de mai multe variabile. Pentru cazul în dou dimensiuni se poate folosi dubla interpolare Lagrange i interpolarea transfinit . Pâna acum am vorbit despre aproximarea unei curbe prin impunerea trecerii prin punctele tabelate a curbei aproximante. Adic valorile func iei f s fie egale cu valorile func iei aproximante pe nodurile de interpolare. Exist îns i alte variante de a aproxima o func ie dat prin valori tabelate, cu atât mai mult cu cât aceste valori nu sunt întotdeauna exacte, ci aproximative. A impune s avem coinciden de valori in acest caz nu ar avea nici un sens din punct de vedere al erorilor si preciziei. Astfel am putea spune intr-un mod mai puìin formal, c vom cauta s g sim o func ie aproximativ care s se potriveasc cel mai bine, într-un anume sens bine definit, cu func ia dat tabelat. A adar a potrivi o curb pe un set de date înseamn a g si o func ie g(x) pe un set de puncte date (xi,yi), i=1,2,...,n, care s se apropie cel mai mult de forma exact a func iei tabelate. Func ia g(x) poate fi polinomial , func ie neliniar sau o combina ie liniar de func ii cunoscute.

Func ia g(x) selectat trebuie s aib un num r dat de coeficien i nedetermina i. În general num rul de puncte date n este mult mai mare decît num rul coeficien ilor nedetermina i, s zicem k. Principiul de determinare al coeficien ilor se bazeaz pe minimizarea discrepan elor dintre func ia determinat i punctele date. Metoda se nume te metoda celor mai mici p trate. În cazul special n=k curba de potrivit se reduce la o problem de interpolare deoarece de data acesta curba trece prin punctele date. Cu alte cuvinte interpolarea poate fi v zut ca un caz particular al aproxim rii în medie p tratic .

Interpolare i extrapolare Din punct de vedere conceptual interpolarea are dou etape: 1. interpolarea func iei pe datele cunoscute 2. evaluarea func iei interpolate pe un punct int x Aceste dou etape nu sunt întotdeauna cele mai utile în practic . Eficien a calcului este destul de mic i susceptibil la apari ia erorilor de rotunjire comparativ cu metodele care construiesc o func ional de estimare pentru f(x) direct din cele n valori tabelate, de fiecare dat când este dorit . Cele mai practice scheme încep pe un punct din vecin tatea celui c utat i apoi se adaug o secven de corec ii descrescânde pân când informa ia de la alt punct f(xi) este încorporat . Aceast procedur folose te de obicei O(n2) opera ii. Dac totul merge bine, ultima corec ie va fi cea mai mic i poate fi folosit ca o informa ie de limit a erorii. Interpolarea local , folosind un num r finit de puncte de tip cel mai apropiat vecin, d valori interpolate f(x) care în general nu au derivatele de ordinul întîi sau de ordin superior continue. Acest lucru se întîmpl deoarece pe m sur ce x traverseaz valorile tabelate, schema de interpolare comut pe care puncte tabelate sunt locale.

În situa iile în care continuitatea derivatelor este o problem trebuie s folosim o interpolare mai rigid cunoscut sub numele de interpolarea cu func ii spline. O func ie spline este un polinom între fiecare pereche de puncte tabelate, dar a c rei coeficien i nu sunt determina i în totalitate local. Faptul c sunt determina i nelocal garanteaz netezimea global a func iei interpolate pân la un anumit ordin al derivatei. Interpolarea spline cubic este cea mai utilizat interpolare din categoria acestora. Ea produce o func ie de interpolare care este continu pân la derivata de ordin doi. Ordinul interpol rii este num rul de puncte minus unu folosite în schemele de interpolare. În cazul interpol rii polinomiale, gradul polinomului de interpolare este ordinul interpol rii. Cre terea ordinului nu reprezint neap rat cre terea acurate ii. Dac ad ug m un num r de puncte la distan fa de punctul de interes, polinomul de grad ridicat ob inut tinde s oscileze puternic între valorile tabelate. Acest oscila ie poate s nu aib nici o leg tur cu comportamentul func iei adev rate. Sigur c ad ugarea de puncte în apropierea punctului dorit de obicei ajut , dar pe de alt parte o re ea mai fin implic un num r mare de valori tabelate nu neap rat disponibile.

Interpolarea Lagrange Una dintre cele mai cunoscute i mai generale formule de interpolare este interpolarea Lagrange. Forma generala a polinomului de interpolare Lagrange poate fi reprezentat astfel: Daca x0,x1,«,xn sunt (n+1) puncte distincte i f este o func ie ale c rei valori sunt date în aceste puncte, atunci exist un polinom unic P, de grad cel mult n, cu propietatea c f(xk)=P(xk), k=0,1,2,«n. Polinomul este dat de: n

P ( x ) ! § f ( x k ) Ln ,k ( x),
k !0

unde

Ln , k ( x ) ! ( x  x0 )( x  x1 )...( x  x k 1 )( x  x k 1 )...( x  x n ) ( x k  x0 )( x k  x1 )...( x k  x k 1 )( x k  x k 1 )...( x k  x n ) ( x  xi ) ! — i ! 0 ,i { k ( x k  x i )
pentru k=0,1,2,«,n i se nume te polinomul Lagrange.
n

Exemplu pentru interpolarea Lagrange. Dezvolta i o formul de interpolare pentru func ia e0.5x folosind valorile pe x0=0 i x1=2, iar apoi estima i valorea func iei pentru x=1. Solu ie: Valorile func iei f(x) pentru x0=0 i x1=2 sunt date de f(x0)=f(0)=e0=1 i f(x1)=f(2)=e1=2.718282. Formula de interpolare liniar se exprim : f1(x)=a0+a1(x-x0) unde a0=f(x0)=1 i

f ( x1 )  f ( x0 ) 2.718282  1 a1 ! ! ! 0.859141 x1  x2 20
Astfel ecua ia interpol rii liniare se scrie: f1(x)=1+0.859141x. Valoarea interpolat a func iei pe punctul x=1 se poate ob ine astfel: f1=1+0.859141(1)=1.859141 Dac vom compara valoarea exact f(1)=e0.5=1.648721, cu valoarea interpolat liniar, eroarea este de 12.762620%.

Interpolarea spline cubic Aceast interpolare este potrivit pentru g sirea unei curbe netede de aproximare pe un num r mare de puncte. Interpolarea Lagrange, care presupune aproximarea cu un singur polinom a unui set de date, conduce la o cre tere considerabil a erorii în cazul în care num rul de puncte este mare i prin urmare ea nu este aplicabil . Interpolarea spline este cea care se utilizeaz cu succes în acest caz. Consider m un set de date cunoscut (si, fi) i=1,2,«,n. Vom interpola datele cu o spline cubic pentru a aproxima func ia dat tabelat. Ideea de baz a interpol rii spline cubice este s aplic m o aproximare cu un polinom cubic între dou puncte consecutive. Derivata de ordinul întâi i derivata de ordinul doi a polinomului cubic trebuie impus s fie continue de-a lungul fiec rui punct. Astfel func ionala, derivata întâi i derivata a doua devin continue pe întreg domeniul de defini ie. Din acest motiv se observ c pentru determinarea coeficien ilor polinomului cubic pe fiecare subinterval va trebui sa determin m simultan coeficien ii pentru toate subintervalele.

Pentru a potrivi o func ie spline cubic f(s) pe un set de date (si, fi), i=1,2«,n urm toarele cantit i sunt necesare: si, i=1,2,...,n: cunoscute fi, i=1,2,...,n: cunoscute fi', i=1,2,...,n: de determinat fi'',i=1,2,...,n: de determinat S consider m un interval si< s <si+1, cu hi=si+1-si. Folosind coordonata local t=s-si, un polinom cubic poate fi scris sub forma: f(t)=a+bt+ct2+et3, unde 0e t ehi Mai întâi vom cere ca f(t) s fie egal cu valori cunoscute ale func iei pe punctele de la capetele intervalului de studiu t=0 i t=hi: fi =f(0)=a fi+1=f(hi)= a+bhi+chi2+ehi3 Cele dou rela ii sunt insuficiente pentru determinarea celor patru constante a, b, c i e din expresia func iei spline. Pentru alte înc dou condi ii necesare vom impune continuitatea derivatelor f' i f'' pe fiecare punct. Dac aceste condi ii sunt realizate, întreaga curb va deveni continu în punctele date, pentru prima i a doua derivat a func iei.

A doua derivat a polinomului cubic este: f"(t)=2c+6et care devine pe punctele din capetele intervalului de studiu, i, respectiv (i+1): f"i =f´(0)= 2c f"i+1=f´(hi)= 2c+6ehi unde fi" i fi" sunt valorile lui f" pe punctele i i i+1, ce urmeaz a fi determinate, deci ele sunt valori necunsocute. Cele dou ecua ii pot fi scrise mai departe: c=fi"/2 e=(fi+1"-fi")/6hi i vom avea conform rela iilor scrise pentru f pe punctele 0 i hi :

b!

f i 1  f i f i1 " 2 f i "  hi hi 6

a=fi

unde coeficientul a este deja cunoscut, iar coeficientul b este determinat prin eliminarea coeficien ilor a, c, e din a doua rela ie.

Cu aceste valori pentru a, b, c, i e polinomul cubic f(t) se scrie sub forma:

¨ f i 1  f i f i 1 "2 f i " ¸ f i " 2 f i 1 " f i " 3  f (t ) ! f i  © hi ¹t  t  t © h ¹ 6 2 6hi i ª º
Vom deriva expresia de mai sus i vom egala valoarea ei pentru t=0 i t=hi cu valorile fi', respectiv fi+1':

hi 1 f i ' !  ( f i 1 "2 f i ' ' )  ( f i 1  f i ) hi 6 hi 1 f i 1 ' ! ( 2 f i 1 " f i " )  ( f i 1  f i ) hi 6
unde hi-1 = xi-xi-1.

Observa ie: Considerând acum intervalul adiacent si-1<s<si , expresia derivatei pe acest interval în punctul i, ca fiind capatul din dreapta al intervalului, se poate scrie similar cu ultima rela ie dat i anume:

hi 1 1 fi ! ( 2 f i " f i 1" )  ( f i  f i 1 ) hi 1 6
Avem astfel dou expresii diferite pentru derivata în acela i punct i. Vom impune a adar continuitatea derivatei. Cele dou expresii ale derivatei pe punctul i, fi', trebuie s aib aceea i valoare pentru a se realiza continuitatea func iei spline. Vom egala a adar cele dou expresii:
¸ ¨ 1 ¨ 1 1¸ 1 hi f i 1" (2hi 1  2hi ) f i " hi f i 1" ! 6© f i 1  ©  ¹ f i  f i 1 ¹ ¹ ©h ¹ ©h hi i 1 ª i 1 hi º º ª

(*)

ecua ia fiind înmul it cu 6.

Ecua ia anterioar poate fi scris pentru toate punctele si cu excep ia a dou puncte: punctul de start al datelor i punctul final al datelor si. Acest lucru înseamn c avem cunoscute n-2 ecua ii, dar în acela i timp tim c num rul de necunoscute fi' este n. A adar dou ecua ii suplimentare sunt necesare pentru determinarea tuturor necunoscutelor fi'. Aceste dou ecua ii pot fi ob inute din condi iile impuse la marginile intervalului [s1, sn]. Trei forme de condi ii de frontier sunt date mai jos: (a) Specificarea valorilor fi' pe punctele de margine. Dac scriem expresile valorilor lui fi' pe cele dou puncte de margine i=1 i i=n, întregul sistem de ecua ii devine:

¸ ¨1 ¸ ¨ © f1  © 1  1 ¹ f 2  1 f 3 ¹  h1 f1 ' ' ( 2 h1  2 h2 ) f 2 ' ' h2 f 3 ' ' ! 6© ©h h ¹ h2 ¹ ª 1 2 º º ª h1 ¨ 1 ¸ ¨ 1 1¸ 1  ¹ fi  hi 1 f i 1 ' ' ( 2 hi 1  2 hi ) f i ' ' hi f i 1 ' ' ! 6© f i 1  © f i 1 ¹ ©h ©h ¹ hi ¹ hi ª i 1 º ª i 1 º ¨ 1 ¸ ¨ 1 1 ¸ 1 ¹ f n 1   hn  2 f n  2 ' ' 2 hn  2  2 hn 1 f n 1 ' ' ! 6© f n2  © f n ¹  hn 1 f n ' ' ©h ©h hn 1 ¹ hn 1 ¹ ª n2 º ª n2 º

Avem a adar n-2 ecua ii cu n-2 necunoscute fi'. Dac scriem ecua iile de mai sus în form matriceal , matricea coeficien ilor devine de form special numit matrice tridiagonal , în care toate elementele sunt zero cu excep ia celor trei linii diagonale. Rezolvarea sistemului se poate face deci prin tehnici speciale pentru sisteme tridiagonale. De i f" pe punctele finale nu se cunoa te de cele mai multe ori, se poate presupune c f"=0 pe punctele din capetele domeniului de analiz , adic f1´=0 i fn´=0. Din punct de vedere geometric, acest lucru este echivalent cu presupunerea c în apropierea punctelor din capete, curba devine o linie dreapt . (b) Extrapolarea din interior a valorilor f" pe punctele de margine. Extrapolarea lui f1'', din f2'' i f3'' se scrie sub forma:

¨ h1 ¸ h1 '' f 1 ' ' ! © 1  ¹ f 2 ' ' f3 © h ¹ h2 ª 2 º

Alegând i=2, în ecua ia (*) i înlocuind expresia lui f1'' cu expresia extrapolat , vom ob ine ecua ia ce înlocuie te prima ecua ie din sistemul de la punctul (a):
2 2 ¨1 ¨ ¨ ¨1 1¸ 1 ¸ h1 ¸ h1 ¸ © 3h1  2h2  ¹ f 2 ' '© h2  ¹ f 3 ' ' ! 6© f1  ©  ¹ f 2  f3 ¹ ©h h ¹ © ¹ © ¹ ©h h2 º h2 ¹ h2 º ª 1 1 2 º ª ª ª º

În mod similar se scrie ecua ia pentru i=n-1, iar acesta va înlocui ultima ecua ie din sistemul de la punctul (a). Sistemul ob inut în acest caz are aceea i form cu sistemul precedent, cu excep ia câtorva coeficien i. Rezolvarea lui se face prin aceea i metod folosit în cazul (a). (c) Condi ii de frontier ciclice. Aceste condi ii se aplic dac primul i ultimul punct este acela i i prin urmare derivatele pe aceste puncte sunt identice. Acest lucru se întâmpl dac toate punctele reprezint un ciclu de curb care se repet . De exemplu o curb închis într-un plan poate fi aproximat folosind condi ii de frontier ciclice.

Comenzi Matlab pentru interpolarea spline Comanda Matlab, interp1, realizeaz o interpolare spline, dac se folose te sintaxa urm toare: interp1(x,y,xi,'spline') unde x i y sunt punctele date sub form de vectori de abscise pentru interpolarea dorit . Comanda returneaz valorile interpolate yi pentru valorile xi. Nu este necesar specificarea condi iilor de frontier în argumentul func iei Matlab, dar condi iile de tip (b) sunt presupuse prin aceast comand . Exemplu: Fie setul de date: x=[0, 0.5, 2, 3.5, 4] y=[0, 2, -2, 2, 0] S se determine func ia spline pentru 0e x e4, cu vectorul xi=1:0.05:4, care reprezint o diviziune mai fin decât a datelor ini iale.

Solu ie: Derivata de ordin doi a func iei spline poate fi calculat din yi prin aproximarea cu diferen e de ordin doi. Reprezentarea grafic de mai jos prezint func ia spline (linie continu ) i derivata ei de ordin doi (linie întrerupt ), calculate prin interpolarea spline. Se observ c derivata de ordin doi este liniar de la x=0 la x=2, adic pe dou subintervale ale setului de date dat. Acela i lucru se petrece i pentru ultimele dou subintervale. Aceasta nu se întâmpl decât dac calculul derivatei de ordin doi pe fiecare punct din capete este extrapolat liniar în spline. clear, clf,hold off x=0:4; x(2)=0.5;x(4)=3.5;x y=[0 2 -2 2 0] xp=0:0.05:4; % diviziune mai fina pentru % functia spline de calculat h=xp(2)-xp(1) yp=spline(x,y,xp); n=length(xp)

for i=2:n-1 % diferente finite de ordin doi ypd(i)=(yp(i-1)-2*yp(i)+yp(i+1))/h^2; % derivata de ordin doi end ypd(1)=ypd(2)*2-ypd(3); % numai pentru grafic ypd(n)=ypd(n-1)*2-ypd(n-2); % numai pentru grafic plot(xp,yp, xp,ypd/10,'-.y') hold on plot(x,y,'o') xlabel('X'); ylabel('Y'); set (gca,'FontSize',[18]) text(1,1.5,'C-spline','FontSize',[18]) text(0.3,2.3,'o:punctele date -.:(deriv. a doua)/10',... 'FontSize',[18]

La fel ca i interpolarea Lagrange, interpolarea spline poate avea un comportament oscilant datorit erorilor. Dac abscisele punctelor date pot fi alese liber, se folosesc intervale mici aproape de punctele din capete i în locurile unde curbura este înalt .

Eroarea de interpolare Eroarea de interpolare se noteaz cu En(x) i are expresia En(x)=f(x)-Pn(x), cu x[a,b], f func ia de aproximat i Pn polinomul de interpolare. Nodurile de interpolare sunt x0, x1,...,xn, adic (n+1) valori, iar polinomul de interpolare este de grad n. Eroarea En(x) depinde de urm torii factori: 1. Lungimea domeniului de interpolare xn-x0 2. Distan ele dintre nodurile de interpolare 3. Ordinul n al polinomului de interpolare. În cele mai multe cazuri distan ele dintre nodurile de interpolare sunt egale, adic punctele sunt uniform distribuite pe domeniul de interpolare. În acest caz eroarea în valoare absolut va deveni mai mic în mijlocul domeniului de interpolare i mai mare în apropierea capetelor intervalului x0 i xn. În general maximul valorii erorii in valoare absolut se apropie de zero dac lungimea intervalului xn-x0 este redus . Pentru orice lungime a domeniului de interpolare, eroarea de interpolare de obicei descre te pe m sur ce cre te ordinul polinomului de interpolare, dar de la un anumit n, totu i eroarea poate s inceap s creasc .

Teorema care exprim forma restului este: Fie f:[a,b]p o func ie continu de clas Cn[a,b] cu propietatea c  f(n+1) astfel încât `f(n+1)(x)`<M, pe intervalul [a,b]. Dac x0, x1,...,xn sunt nodurile de interpolare pentru func ia f, atunci:

En ( x ) e

M ( x  x0 )( x  x1 )...( x  xm ) ( n  1)!

Un exemplu de evaluare a erorii de interpolare este aplicat în urm toarea problem : S se determine eroarea comis în calculul lui ˜279, folosind un polinom de interpolare pentru func ia f(x) i nodurile x0=200, x1=250, x3=300. Solu ie: Deoarece avem trei noduri de interpolare vom construi un polinom de interpolare de gradul n=2.

1 2 f ' ( x) ! x 2

1

1 4 f ' ' ( x) !  x 4

3

3 2 f ' ' ' ( x) ! x 8

5

Vom calcula maximul derivatei de ordin trei a func iei pe intervalul [200, 300]:
5  ¨ 3 5 ¸ 3 3 © ™ x 2 ¹ ! ™ 200 2 ! ™ 205 M ! max f ' ' ' ( x) ! max © ¹ 8 200e x e 300 200e x e 300 8 8 ª º

Vom evalua eroarea pentru x=264:
3 ™ 20 5 E2 (115) e 8 ( 264  200)(264  250)(264  300) e 8.4 ™10 3 3!

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->