CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
Aproximarea functiilor prin interpolare
Tematica lucrarii: 1. Generalitati;
2. Polinomul de interpolare Lagrange;
3. Polinomul
de interpolare
4. Interpolarea cu functii Spline;
5. Concluzii si intrebari.
1. Generalitati
Fie o functie reala de variabila reala, data print-o multime de valori discrete asociate unei multimi de valori ale argumentului. Prin procesul de interpolare pot fi determinate valori ale functiei corespunzatoare unor valori oarecare ale argumentului care se gasesc intre valorile date. Astfel o functie discreta, sau data prin valori discrete, poate fi aproximata printr-o functie de interpolare de o anumita forma.
Functia de interpolare poate fi definita pentru tot domeniul corespunzator multimii de valori discrete date, sau poate fi definita pe portiuni. Functiile de interpolare pot avea diferite forme, apartinand unor anumite clase de functii. Acestea ofera diferite avantaje si dezavantaje din punctul de vedere al erorilor de aproximare locala si globala. De asemenea functia de interpolare poate avea diferite proprietati din punctul de vedere al gradului de netezime, adica rangul pana la care contine derivate continue.
2. Polinomul de interpolare Lagrange
Interpolarea polinomiala utilizeaza ca functie de interpolare un polinom de un anumit grad. Gradul acestuia depinde de numarul punctelor date. Odata cu cresterea gradul polinomului de interpolare creste si eroarea de aproximare in punctele departate de acestea.
Coeficientii polinomului Lagrange sunt determinati pe baza conditiilor de coincidenta intre valorile functiei de interpolat si polinomul de interpolare in punctele multimii discrete date. Unul dintre avantajele interpolarii Lgrange este posibilitatea utilizarii unei multimi de puncte neechidistante.
Fie o diviziune cu n+1 puncte a intervalului [a,b]: x , x , x , , xn, cu x = a si xn = b in care sunt date valorile functiei reale definite pe intervalul [a,b]:
y = f(x y = f(x ) ; y = f(x ) ; ; yn = f(xn) ; yn = f(xn (1)
Polinoamele Lagrange, notate Ln(x), au forma:
(2)
si sunt definite de conditiile:
Ln(xi) = yi pentru i = 0,1,2,,n (3)
Polinoamele elementare pi(x) sunt definite cu ajutorul simbolului lui Kroneker ij astfel:
pi(x) = ij daca x = xi si (4)
= 0 daca x = xj , j i
Se poate observa ca polinomul pi(x) are ca radacini punctele x ,x ,,xi-1,xi+1,,xn , iar in punctul xi trebuie sa ia valoarea 1. Daca acestea sunt scrise sub forma:
pi(x) = ci(x-x )(x-x ) (x-xi-1)(x-xi+1) (x-xn (5)
si determinam coeficientii ci din conditiile: pi(xi) = 1 pentru diferite valori ale lui i, atunci rezulta:
(6)
si respectiv:
(7)
Daca utilizam notatiile:
in+ (x) = (x-x )(x-x ) (x-xi-1)(x-xi+1) (x-xn (8)
atunci polinomul Lagrange poate fi scris sub forma condensata:
(9)
Din relatia de definitie (5.32) se poate observa ca in punctele xi polinoamele elementare pi(xj) au valoarea unu, iar polinomul de interpolare Lagrange are valori egale cu valorile functiei yi . Deci prin aproximarea cu polinoame Lagrange esantioanele functiei sunt conservate, iar in intervalele dintre puntele date avem o variatie de tip polinomial. De aceea in cazul polinoamelor de grad superior ne putem astepta la o eroare de aproximatie importanta in zona de mijloc a intervalelor de interpolare.
Programarea in Mathcad
Fie o multime discreta care contine N puncte. De exemplu N := 9.
Alegem doua variabile sir, utilizate ca indici:
i := 0 .. N si j := 0 .. N (10)
Notam cu variabila indexata xi vectorul punctelor diviziunii si cu yi vectorul valorilor functiei date. Sa consideram ca xi parcurge valorile lui i, iar functia data are o evolutie oarecare, generata aleator de functia predefinita rnd(1) unde valoarea 1 indica capatul domeniului de valori generate incepand cu valoarea zero:
yi := rnd(1) (11)
Sa alegem pasul s := 1 pentru
variatia valorilor din domeniul de definitie a polinomului de
interpolare Lagrange. Consideram pentru capatul
acestui interval valoarea
k := 0.. N/s si zk := s k (12)
Tinand cont de teoria polinomului de interpolare Lagrange rezulta ca acesta poate fi exprimat in limbaj Mathcad prin ecuatia recursiva:
(
Problema de calcul
Se cere implementarea si rezolvarea in limbaj Mathcad a problemei de interpolare, utilizand polinomul Lagrange, pentru functia y(x). In acest scop se vor trasa curbele de variatie pentru functia data si pentru polinomul de interpolare pe acelasi grafic. Sa se urmareasca apoi eroarea de aproximare pe tot domeniul de variatie pentru cele doua functii.
Fig.1 Variatia functiei discrete y(x) (interpolata liniar).
Fig.2 Variatia polinomului Lagrange si a functiei y(x)
Se cere:
Implementarea in limbaj MathCad a algoritmului de interpolare cu polinoame Lagrange;
Studiul modului de alegere a punctelor si a numarului de puncte, pentru o diviziune a intervalului de variatie, pentru o anumita functie data;
Studiul calitatii aproximarii pentru diferite tipuri de functii.
3. Polinomul de interpolare
Formulele de interpolare ale lui
Daca notam cu y valoarea functie f in punctul x: y = f(x) si cu x notam cresterea argumentului x pe parcursul unui pas de discretizare h, atunci diferenta finita de ordinul unu a functiei f in punctul x, notata cu y, este definita de relatia:
y = f(x) = f(x+x) - f(x) (14)
Analog notam cu y diferenta finita de ordinul doi, a functiei f in punctul x :
y = [f(x+x) - f(x)] = f(x+x) - f(x) =
[f(x+2x) - f(x+x)] - [f(x+x) - f(x)] = f(x+2x) - f(x) (15)
Diferenta finita de ordin n o definim prin relatia recursiva:
ny n-1y) (16)
Notiunea de putere generalizata definita de relatia:
x[n] = x[x-h][x-2h] [x-(n-1)h] (17)
unde h este o
Polinomul de interpolare Newton de ordinul n de speta I are forma:
Pn(x) = a + a (x-x ) + a (x-x x-x ) + + an(x-x )(x-x ) (x-xn-1 (18)
Daca utilizam notatia puterii generalizate polinomul se poate scrie:
Pn(x) = a + a (x-x + a (x-x + + an(x-x [n]
Pentru determinarea coeficientilor a , a , ,an punem conditiile:
Pn(x ) = y (20)
Pn(x y
Pn(x y
nPn x ny
Rezolvand
sistemului de ecuatii rezulta coeficientii a , a , ,an si polinomul de interpolare
(21)
Daca in aceasta relatie facem substitutia:
(22)
rezulta expresia de forma:
(23)
Caracteristici ale polinoamelor de interpolare Newton
Coeficientii
polinomului
Programarea in MathCad
Pentru a studia modul de
implementare in MathCad a interpolarii functiilor prin metoda lui
f(x) = ex (24)
Consideram ca functia este data prin valori discrete pe un interval restrans:
(a,b) = (3 ; 3,7) (25)
Ne propunem ca prin metoda lui Newton sa realizam iterpolarea functiei pe intervalul dat si apoi sa realizam extrapolarea acesteia pe o extensie a intervalului:
(b,c) = ( 5) (26)
Daca consideram o diviziune cu patru segmente a intervalului dat (N = 4) rezulta pasul si nodurile diviziunii:
k := 0..N xk := a + hk (27)
Luam pentru valorile discrete ale functiei de aproximat valorile corespunzatoare nodurilor diviziunii:
fdk := f(xk (28)
Daca consideram ca vectorul diferentelor finite de ordinul zero este definit chiar de vectorul valorilor functiei in punctele diviziunii:
(29)
Atunci pentru calculul diferentelor finite pentru ordinele 1..4 ale functiei f(x) putem utiliza urmatoarea ecuatie vectoriala recursiva: (30)
Reamintim ca exponentul <k> plasat intre paranteze ascutite indica vectorul corespunzator pasului de calcul k, iar indicele inferior indica numarul componentei vectorului (numaratoarea facandu-se incepand cu zero. Ecuatia recursiva de mai sus determina diferentele finite, din aproape in aproape, obtinand valori succesive pe baza celor deja calculate. Fiecare diferenta fiunita va fi calculata prin diferenta diferentelor finite precedente, avand ca referinta totdeauna capatul din stanga al subintervalului. Astfel la fiecare pas (ordin al diferentei finite) numarul de valori nenule se micsoreaza cu cate o unitate.
Pentru
determinarea coeficientilor polinomului lui
(31)
In MathCad polinomul
(32)
unde fd reprezinta valoarea functiei in capatul de referinta al intervalului;
[df<k> reprezinta prima componenta a vectorului diferentelor finite de ordinul k;
k si m sunt variabile sir intregi, definite inaintea expresiei de mai sus:
k := 1..3 ; m := 1..3 (33)
Expresia conditionala care apare in cadrul produsului indexat dupa m este utilizata pentru a putea genera produse cu un numar diferit de factori pentru fiecare pas k.
A doua modalitate de a construi
polinomul
(34)
Rezulta
polinomul lui
(x-a):
(35)
Forma numerica a implementarii polinomului
a b := 5 N := 50 k := 0..N (36)
Sirul
de 50 de valori are o rezolutie suficienta pentru a putea trasa
si verifica grafic modul de aproximare a functiei continue f(x) = ex prin interpolare si
respectiv extrapolare, utilizand cateva valori discrete si polinomul
Fig.3. Variatia polinomului
Se cere:
Implementarea
in limbaj MathCad a algoritmului de interpolare cu polinoame
Studiul modului de alegere a punctelor si a numarului de puncte, pentru o diviziune a intervalului de variatie, pentru o anumita functie data;
Studiul calitatii aproximarii pentru diferite tipuri de functii.
4. Interpolarea cu functii Spline
Interpolarea cu functii Spline consta de regula intr-o interpolare polinomiala pe portiuni, realizand insa cuplajul neted intre segmentele de curba cu gradul de continuitate cerut (pentru functie si derivatele acesteia). Interpolarea cu functii Spline, pe de o parte elimina dezavantajul mentionat in cazul interpolarii polinomiale (erori mari de aproximare daca numarul punctelor date este mare), iar pe de alta parte respecta cerintele de continuitate cerute pentru functie si derivatele ei. Interpolarea pe subintervale poate fi realizata si cu alte tipuri de functii ca cele trigonometrice sau cele din clasa functiilor speciale. Printre cele mai utilizate sunt functiile Spline cubice care utilizeaza pentru interpolare polinoame de gradul trei.
Fie f(x) o functie reala de variabila reala definita pe intervalul [a,b] : f : [a,b] --> R , o diviziune a intervalului: a = x , x , x , , xn = b , pentru care cunoastem valorile esantioanelor in punctele diviziunii: f(xi) = yi , i = 1, 2, , n .
Proprietatile functiilor Spline cubice:
a) multimea functiilor Spline notata cu S apartine clasei de functii cu derivate de ordinul doi continui pe intreg intervalul [a,b]:
b) in punctele diviziunii functiile S(x) sunt egale cu esantioanele functiei interpolate f(x):
f(xi) = S(xi pentru i = 1, 2, , n (38)
c) derivatele de ordinul doi ale functiilor Spline au norma 'patrat integral' minima :
pentru orice functie g(x) (39)
Realizarea efectiva a interpolarii
Functiile Spline cubice utilizeaza polinoame de gradul trei pe portiuni. Rezulta ca derivatele de ordinul doi au variatie liniara pe portiuni.
Pentru interpolarea Spline se impun cerintele urmatoare.
* Derivata a doua a functiei globale de interpolare pe tot intervalul sa fie continua
(S C2[a,b]). Deci grafic aceasteia va consta intr-o linie franta;
* Limitele laterale ale derivatei de ordinul intai sa fie egale in punctele diviziunii intervalului de interpolare (conditie de netezime):
limx -> xi ; x>xi S'(x) = limx -> xi ; x<xi S'(x) (40)
* in punctele diviziunii functiile Spline S(x) sunt egale cu esantioanele functiei interpolate f(x) (conditie de coincidenta):
f(xi) = S(xi pentru i = 1, 2, , n (41)
Realizarea efectiva a interpolarii cu functii Spline se conformeaza etapelor urmatoare:
Determinarea valorilor derivatelor de ordinul doi in punctele diviziunii intervalului prin rezolvarea unui sistem de ecuatii construit pe baza conditiei de netezime (37).
Determinarea functiilor Spline, pe fiecare portiune, utilizand valorile derivatelor de ordinul doi pe baza conditiei de coincidenta (41).
Programarea in Mathcad
In cadrul programului Mathcad avem la dispozitie urmatoarele functii predefinite:
cspline(x,y) pentru calculul vectorului corespunzator derivatelor de ordinul doi, avand ca argumente vectorul x al punctelor diviziunii si vectorul y al valorilor discrete ale functiei de interpolat;
interp(w,x,y,z) pentru calculul functiei de interpolare Spline in punctele definite de vectorul z. Prin vectorul w vor fi transmise valorile corespunzatoare functiei cspline.
Pentru calculul valorilor functiei de interpolare Spline in punctele corespunzatoare coordonatelor vectorului z utilizam comenzile Mathcad:
w := cspline(x,y) (42)
Sk := interp(w,x,y,zk (43)
Problema de calcul Calculati si trasati grafic in Mathcad variatia functiei de interpolare Spline, pentru functia y(x) pe intervalul [0,N].
Trasati pe acelasi grafic variatiile functiei interpolate si functiei de interpolare si urmariti eroarea de aproximare.
Fig.4 Interpolarea cu functii Spline cubice
Se cere:
* Realizarea interpolarii cu functii Spline, utilizand instructiunile MathCad;
* Studiul comparativ a interpolarii cu functii Spline si polinoame Lagrange.
5. Concluzii si intrebari
Din modul de definire si experimentele numerice deduceti avantajele si dezavantajele metodei de interpolare cu polinoame Lagrange si cu functii Spline;
Dati exemple de tipuri de functii pentru care este potrivita interpolarea Lagrange sau Spline;
Prezentati cateva din aplicatiile interpolarii functiilor in domeniul preocuparilor matematice sau stiintifice, in general.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 4725
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved