Sunteți pe pagina 1din 12

Metode de interpolare

Laborator 7
METODE DE INTERPOLARE
1. Noiuni introductive
n numeroase situaii se impune gsirea unei funcii ct mai simple posibil care s
aproximeze o alt funcie dat, cu care, din diferite motive, este dificil de lucrat.
O funcie
[ ] R b , a : f
poate fi definit n diverse moduri:
a. sub forma unui tabel de valori
b. sub forma unei (unor expresii explicite
c. sub forma unei serii de puteri
d. sub forma unui algoritm numeric
e. sub forma unei soluii a unei ecuaii difereniale
!roblema aproximrii funciei
f
cere gsirea unei funcii F care s ndeplineasc
o serie de proprieti.
"el mai adesea, la aproximare se recurge atunci cnd nu se cunoa#te expresia
analitic a funciei aproximate
f
, dar se cunosc valorile sale ntr$un numr finit de
puncte (cazurile a #i d, sau atunci cnd expresia analitic a funciei aproximate este
complicat, conducnd la eforturi mari de calcul (cazurile b, c #i e.
"utarea unei funcii F care s aproximeze funcia dat
f
, pleac de la cerina
ca funcia de aproximare F s capete, pentru orice valoare a argumentului, valori
apropiate celor corespunztoare funciei aproximate n punctul considerat. %e cele
mai multe ori se cere c&iar ca valorile celor dou funcii s coincid ntr$un numr
impus de puncte. 'vident, acest numr este finit, altfel nemaivorbindu$se de
aproximare ci de identitate de funcii. (ceste puncte sunt denumite puncte de
interpolare. %e asemenea, se poate cere ca anumite derivate ale lui F s ia valori
identice cu cele ale derivatelor corespunztoare ale funciei
f
n anumite puncte de
interpolare.
)e cere ca funcia F s fie o funcie simpl, pentru ca operaiile efectuate cu ea
(evaluare, difereniere, integrare etc. s se realizeze u#or. %in acest motiv, n multe
situaii, funcia F se prezint sub forma unui polinom algebric.
*ie
[ ] { } R b , a : f / f M
un spaiu liniar. (tunci exist
n
funcii
) x ( ),..., x ( ), x (
1 n 1 0

liniar independente, astfel nct:
0 ) x ( c ... ) x ( c ) x ( c
1 n 1 n 1 1 0 0
+ + +


(+
implic
n , 0 c ... c c
1 n 1 0


. "ele
n
funcii astfel definite formeaz o baz de
funcii n spaiul liniar considerat. n aceste condiii, o funcie oarecare
f
din M se
poate aproxima prin funcia F definit ca o combinaie liniar de k funcii de baz,
cu n k , de forma:

+ + +
k
0 i
i i k k 1 1 0 0 k
) x ( c ) x ( c ... ) x ( c ) x ( c ) x ( F
(,
1
Metode numerice implementate C
*uncia construit prin (, poart numele de polinom generalizat. )e spune astfel c
aproximarea funciei
f
s$a fcut prin polinoame generalizate.
"el mai adesea, ca funcii liniar independente sunt considerate funciile:
... , x , ... , x , x , 1
j 2
(stfel de funcii sunt simple, deci u#or calculabile. n acest caz,
) x ( F
k
va fi un
polinom algebric:
k
k
2
2 1 0 k k
x c ... x c x c c ) x ( P ) x ( F + + + +
(-
.n alt #ir de funcii liniar independente este #irul funciilor trigonometrice:
... , kx sin , kx cos , ... , x 2 sin , x 2 cos , x sin , x cos , 1
iar aproximarea se face prin polinoame trigonometrice, de forma:
kx sin b kx cos a ... x 2 sin b x 2 cos a x sin b x cos a a ) x ( T
k k 2 2 1 1 0 k
+ + + + + + +
(/
%eosebit de important este #i cunoa#terea coeficienilor
k 1 i , c
i

. !entru
determinarea acestora, s presupunem c M se poate organiza ca un spaiu
metric. (sta nseamn c putem defini pe M o funcie care s msoare distana
dintre dou funcii din M . %ac [ ] b , a C M
0
(mulimea funciilor continue definite
pe
[ ] b , a
, se poate defini distana dintre funciile
f
#i
g
din M , prin:
[ ]
) x ( g ) x ( f max ) g , f ( d
b , a x

(0
%ac aproximarea lui
f
se face cu a1utorul acestei distane, se obine aproximarea
uniform, iar
) g , f ( d
are semnificaia de eroare absolut n metric a lui
) x ( g
.
%ac n locul lui
) x ( g
din (0 se va pune
) x ( F
k
dat de (-, atunci:
) c ,..., c , c ( ) F , f ( d
k 1 0 k

(2
%e aici, un criteriu pentru determinarea coeficienilor
k 1 i , c
i

ar fi ca distana
dintre
f
#i F s fie minim.
n locul distanei definite prin (0 se poate considera:
[ ]
2
1
b
a
2
dx ) x ( g ) x ( f ) g , f ( d

'

(3
sau: [ ]
2
1
b
a
2
dx ) x ( g ) x ( f ) x ( p ) g , f ( d

'


(4
2
Metode de interpolare
unde
0 ) x ( p >
poart denumirea de funcie pondere. (proximarea bazat pe aceste
distane se nume#te aproximare n medie ptratic, respectiv medie ptratic
ponderat.
%e remarcat c distanele (3 #i (4 nu au semnificaie de eroare absolut n
metric a lui
) x ( g
, de aceea le vom numi cvasimetrice. n aceea#i situaie se afl #i
urmtoarea distan:
[ ]
2
1
n
0 i
2
i i
) x ( g ) x ( f ) g , f ( d

'

(5
n 1 0
x ,..., x , x
fiind 1 n + puncte cunoscute din intervalul
[ ] b , a
.
6etrica (5 n care
) x ( g
se nlocuie#te cu
) x ( F
k
definit prin (-, conduce tot la
o aproximare de medie ptratic, metoda de aproximare purtnd denumirea de
metoda celor mai mici ptrate a lui Gauss. (ceast metod este utilizat n
prelucrarea matematic a datelor experimentale.
!utem, de asemenea, considera #i metrica:


n
0 i
i i
) x ( g ) x ( f ) g , f ( d
(+7
"onsidernd distanele definite de (5 #i respectiv (+7, n care
) x ( g
se
nlocuie#te cu
) x ( F
k
, definit de (- #i impunnd condiia de minim, se a1unge la
relaiile:
n 0 i ), x ( F ) x ( f
i n i

(++
(proximarea n cazul acesta poart denumirea de aproximare prin interpolare, iar
polinomul generalizat
) x ( F
n
, care satisface condiia (++, polinom de interpolare.
*unciile matematice sunt adesea descrise n form tabelar. 'xemple de astfel
de funcii sunt cele trigonometrice, exponeniale, logaritmice etc. !rocesul de gsire
a unei funcii a crui grafic s treac prin punctele tabelate se nume#te interpolare.
"onsiderm din nou funcia
[ ] R b , a : f
, #i 1 n + puncte distincte din intervalul
[ ] b , a
, notate
n 1 0
x , ... , x , x
, numite noduri de interpolare. !resupunnd #irul
n 2
x , ... , x , x , 1
, polinomul generalizat
) x ( F
n
devine polinomul algebric
) x ( P
n
, de
forma (-. !entru ca
) x ( P
n
s fie polinom de interpolare pentru
) x ( f
, vor trebui
satisfcute condiiile de interpolare:
n 1 i , y ) x ( P
i i n

(+,
unde
) x ( f y
i i

.
) artm n continuare c polinomul de interpolare astfel definit, este unic
pentru un sistem precizat de noduri. !entru aceasta, vom observa c relaiile (+,
conduc la un sistem de 1 n + ecuaii liniare cu 1 n + necunoscute (acestea fiind
tocmai coeficienii
n 0 i , c
i

:
3
Metode numerice implementate C

'

+ + + +
+ + + +
+ + + +
n
n
n n
2
n 2 n 1 0
1
n
1 n
2
1 2 1 1 0
0
n
0 n
2
0 2 0 1 0
y x c ... x c x c c
......... .......... .......... .......... ..........
y x c ... x c x c c
y x c ... x c x c c
(+-
%eterminantul acestui sistem este de tip Vandermonde:
n
n
2
n n
n
1
2
1 1
n
0
2
0 0
x ... x x 1
...... .......... ..........
x ... x x 1
x ... x x 1

(cest determinant este diferit de zero, valoarea sa fiind egal cu produsul tuturor
diferenelor
( ) i j , x x
i j
>
. 8ezult c soluia sistemului (+- este unic, deci
polinomul de interpolare
) x ( P
n
este unic.
n principiu, coeficienii polinomului de interpolare pot fi determinai rezolvnd
sistemul (+-. )e constat ns c pe msur ce
n
cre#te lucrurile se complic, fiind
necesar uneori s se recurg la metode aproximative de rezolvare. n practic au
aprut diverse metode de stabilire a polinomului de interpolare, cum ar fi metoda
9agrange, :e;ton, <auss etc.
%up cum s$a vzut, polinomul de interpolare ia acelea#i valori cu funcia de
aproximat n nodurile de interpolare, presupuse distincte. n celelalte puncte ale
domeniului de definiie al lui
f
, ns, valorile sunt n general diferite. !utem spune,
deci, c
) x ( P
n
aproximeaz pe
) x ( f
cu o anumit eroare dependent de metoda
utilizat.
Teorema 1
*ie
[ ] R b , a : f
, continu mpreun cu primele 1 n + derivate, #i fie
[ ] b , a x ), x ( P ) x ( f ) x ( E
n n

cu semnificaia de eroare de aproximare calculat
n punctul arbitrar
x
. %ac exist
0 , > R
astfel nct pentru orice
( ) b , a x

s avem

+
) x ( f
) 1 n (
, atunci:
) x x )...( x x )( x x (
) 1 n (
) x ( P ) x ( f ) x ( E
n 1 0 n n

+


(+/
Demonstraie
%emonstraia pleac de la observaia c n noduri eroarea de aproximare este
nul, adic funcia eroare prezint 1 n + zerouri ce coincid cu nodurile de
interpolare. )e consider funcia auxiliar:
4
Metode de interpolare
) x x )...( x x )( x x ( k ) x ( P ) x ( f ) x ( g
n 1 0 n

unde k este o constant n raport cu
x
, aceasta urmnd a fi determinat. )e
constat c #i funcia
g
prezint 1 n + zerouri n acelea#i noduri de interpolare,
indiferent de valoarea constantei k . =om alege aceast constant astfel nct
) x ( g
s se anuleze #i n punctul
[ ] n 0 i , x , b , a
i

. <sim:
) x )...( x )( x (
) ( P ) ( f
k
n 1 0
n



(cum
) x ( g
prezint 2 n + zerouri pe intervalul
[ ] b , a
#i satisface condiiile
teoremei lui 8olle pe fiecare din cele 1 n + subintervale formate. 8ezult c
) x ( ! g
prezint cel puin 1 n + zerouri pe
( ) b , a
. "um
) x ( ! g
satisface condiiile
teoremei lui 8olle pe fiecare din cele
n
subintervale, se deduce c
) x ( ! ! g

prezint cel puin
n
zerouri pe
( ) b , a
. !rin inducie complet va rezulta c exist
cel puin un punct
( ) b , a
astfel nct 0 ) ( g
) 1 n (

+
. %eoarece:
0 ) 1 n ( k ) ( f ) ( g
) 1 n ( ) 1 n (
+
+ +

se obine o a doua expresie pentru k :
) 1 n (
) ( f
k
) 1 n (
+

'galnd cele dou expresii ale lui k , rezult:


) x )...( x )( x (
) 1 n (
) ( f
) ( P ) ( f ) ( E
n 1 0
) 1 n (
n n

+

+


%eoarece

este arbitrar #i

+
) x ( f
) 1 n (
oricare ar fi
( ) b , a x
, se obine (+/.
2. Interpolarea grafic
.na dintre cele mai comune metode de interpolare este metoda grafic. (ceast
metod const n ridicarea unei curbe continue care s treac prin punctele tabelate,
operaie realizat prin intermediul unor instrumente specifice sau, cel mai adesea,
manual.
!. Interpolarea liniar
>nterpolarea liniar a fost utilizat pentru prima dat n calculul funciilor
trigonometrice #i al logaritmilor. (cest tip de interpolare se bazeaz pe aproximarea
unei curbe date ntre dou puncte, prin segmentul de dreapt ce une#te cele dou
puncte. n figura + este prezentat un astfel de caz de interpolare.
5
Metode numerice implementate C
"onform principiului
aproximrii prin interpolare,
se impune coincidena
funciei cu polinomul de
gradul nti ales pentru
aproximare, n nodurile de
aproximare
k
x
#i
1 k
x
+
.
!entru aceasta, se scrie
ecuaia dreptei ce trece prin
punctele
)" x ( f , x # $
k k
#i
)" x ( f , x # %
1 k 1 k + +
:
k 1 k
k
k 1 k
k
x x
x x
) x ( f ) x ( f
) x ( f y

+ +
8ezult:
( ) ) x ( f x x
x x
) x ( f ) x ( f
y
k k
k 1 k
k 1 k
+

+
+
deci polinomul de aproximare de grad 1, notat
) x ( P
, este de forma:
1
]
1

+
+
+
+
k
k 1 k
k 1 k
k
k 1 k
k 1 k
x
x x
) x ( f ) x ( f
) x ( f x
x x
) x ( f ) x ( f
) x ( P
8eprezentnd grafic funcia de mai sus, obinem o dreapt numit dreapt de
interpolare. 'vident, abaterea
) x ( P ) x ( f ) x (
depinde de intervalul
[ ]
1 k k
x , x
+
,
de curbura funciei
) x ( f
#i deci de valoarea lui
) x ( ! ! f
.
%eoarece interpolarea liniar d rareori satisfacie (eroarea este mult prea mare,
se folose#te de obicei un polinom de grad superior. (ceast abordare conduce la
ceea ce se cunoa#te sub numele de interpolare polinomial.
". Pre#entarea algorit$ului pentru $etoda de interpolare Lagrange
*ie funcia
[ ] R
n 0
x , x : f
, dat sub forma unui tablou de valori:
!unctele
k
x
, numite #i noduri de interpolare, nu sunt n mod necesar egal distanate.
)e impune coincidena funciei
) x ( f
cu un polinom de aproximare de grad
n
, n
nodurile de interpolare, adic:
n 0 k ), x ( P ) x ( f
k n

x
k
x
0
x
1
x
2
... x
n

f(x
k
) f(x
0
) f(x
1
) f(x
2
) ... f(x
n
)
6
y=mx+n
A[x
k
, f(x
k
)]
B[x
k+1
, f(x
k+1
)]
x
k+1
x
k
f(x)
Figura 1. Interpolarea liniar
y=f(x)
O
x
Metode de interpolare
6etoda 9agrange propune determinarea polinomului de aproximare fr a se
rezolva sistemul considerat. !entru aceasta se procedeaz dup cum urmeaz.
)e alege polinomul de aproximare notat
) x ( '
n
de forma:
n 0 k ), x ( f y ), x ( y ... ) x ( y ) x ( y ) x ( '
k k n n 1 1 0 0 n
+ + +
unde funciile
n 1 0
, ... , ,
sunt polinoame de gradul
n
ce urmeaz a fi
determinate impunnd condiiile de interpolare. Obinem deci:
n n n n n 1 1 n 0 0
1 1 n n 1 1 1 1 0 0
0 0 n n 0 1 1 0 0 0
y ) x ( y ... ) x ( y ) x ( y
.... .......... .......... .......... .......... .......... ..........
y ) x ( y ... ) x ( y ) x ( y
y ) x ( y ... ) x ( y ) x ( y
+ + +
+ + +
+ + +



8ezult:
1 ) x ( , ... , 0 ) x ( , ... , 0 ) x ( , 0 ) x (
..... .......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
0 ) x ( , ... , 1 ) x ( , ... , 0 ) x ( , 0 ) x (
..... .......... .......... .......... .......... .......... .......... .......... .......... .......... ..........
0 ) x ( , ... , 0 ) x ( , ... , 1 ) x ( , 0 ) x (
0 ) x ( , ... , 0 ) x ( , ... , 0 ) x ( , 1 ) x (
n n n k n 1 n 0
k n k k k 1 k 0
1 n 1 k 1 1 1 0
0 n 0 k 0 1 0 0








)e observ c polinomul
) x (
k

, de exemplu, se anuleaz pentru


n
puncte #i ia
valoarea 1 ntr$un singur punct, notat
k
x
. n concluzie, polinomul
n 0 k ), x (
k


poate fi scris n modul urmtor:
( )( ) ( )( ) ( )
n 1 k 1 k 1 0 k k
x x ... x x x x ... x x x x a ) x (
+

"onstanta
k
a
se determin impunnd ca n punctul
k
x
polinomul
) x (
k

s ia
valoarea 1 , adic:
( )( ) ( )( ) ( )
( )( ) ( )( ) ( )
n k 1 k k 1 k k 1 k 0 k
k
n k 1 k k 1 k k 1 k 0 k k
x x ... x x x x ... x x x x
1
a
1 x x ... x x x x ... x x x x a


+
+
8ezult polinomul
) x (
k

de forma:
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
n k 1 k k 1 k k 1 k 0 k
n 1 k 1 k 1 0
k
x x ... x x x x ... x x x x
x x ... x x x x ... x x x x
) x (

+
+

iar n final, polinomul de interpolare 9agrange devine:


( )( ) ( )( ) ( )
( )( ) ( )( ) ( )

+
+

n
0 k n k 1 k k 1 k k 1 k 0 k
n 1 k 1 k 1 0
k n
x x ... x x x x ... x x x x
x x ... x x x x ... x x x x
y ) x ( '
7
Metode numerice implementate C
:otnd:
n 0 k ,
x x
x x
) x ( a
n
k i
0 i
i k
i
k

, obinem:

n
0 k
k k n
) x ( a y ) x ( '
.
%. I$ple$entarea algorit$ului Lagrange
)tudiul algoritmului de interpolare 9agrange poate fi fcut pe un program derivat
din cele analizate pn acum. =om lua n considerare o aplicaie C ca cea
prezentat n (nexa ,. 6otivul pentru care s$a optat n modificarea codului din (nexa
+ este cea a unor deficiene de funcionare a aplicaiei sub )O ?indo;s, manifestate
n special prin blocarea accesului cursorului de mouse n seciunea inferioar a
ecranului de afi#are. n consecin, programul din (nexa , mut butoanele #i
cursoarele de control n regiunea superioar a ecranului.
6odificarea pe care o vom aduce acestui program va consta n nlocuirea codului
funciei de afi#at cu urmtoarea secven de cod:
Listingul 1
float beta(float x,float xivect,float xkvect,int i,int k)
{
float y;
if(xkvect!=xivect)
{
y=(x-xivect)/(xkvect-xivect);
return y;
}
else return ;
}
float alfa(float x,float xvect,int k)
{
int i;
float y=;
for(i=!;i"n;i##)
if(i!=k)
y=y$beta(x,xv%i&,xv%k&,i,k);
return y;
}
float funct(float x) // '()*+I, -. ,'I/,+
{
int k;
xv%!&=-01!!!; xv%&=-213!!; xv%2&=-21!!!; xv%0&=-13!!; xv%4&=-1!!!;
yv%!&=#!15!!; yv%&=#!1623; yv%2&=#!14!!; yv%0&=#!1223; yv%4&=#!1!!;
8
Metode de interpolare
xv%3&=-!13!!; xv%6&=#!1!!!; xv%7&=#1!!!; xv%8&=#21!!!; xv%5&=#01!!!;
yv%3&=#!1!23; yv%6&=-!1!!!; yv%7&=#!1!!; yv%8&=#!13!!; yv%5&=#!15!!;
float y=!;
for(k=!;k"n;k##)
y=y#yv%k&$alfa(x,xv%k&,k);
return y;
}
O prim observaie, de natur utilitar, este aceea c butonul de lansare a
aplicaiei este marcat TrsTest (Tras Test.
)e constat c funcia funct( apeleaz funcia alfa( care la rndul ei c&eam
funcia beta(. )emnificaiile acestor funcii sunt u#or de neles dac se face legtura
cu materialul teoretic prezentat.
=ectorii
" i # x
#i
" i # y
, cu ( 0 i , sunt declarai ca variabile globale.
=alorile argumentului
x
#i ale funciei
y
precizate n fiecare dintre noduri,
trebuie s aparin domeniului de vizibilitate a ferestrei de afi#are din cadrul
ecranului. %in acest motiv se poate pune problema gsirii unei soluii de extindere a
acestui domeniu prin specificaii de program.
!entru datele de intrare specificate, ecranul de ie#ire arat astfel:

9
Figura 1. 9ri:ul ecran al aplica;iei
Metode numerice implementate C
6enionm c imaginea de mai sus a fost prelucrat sub !aint n scopul modificrii
culorii negre de fundal a ecranului, culoare care ar fi dus la un consum exagerat de
cerneal la imprimare.
=alorile funciei tabelate n punctele considerate au fost alese astfel nct s
corespund unei relaii ptratice de tipul:
10 / x y
2

6odificnd una dintre valorile tabelate ale funciei cu +7@ n sus, conform
specificaiei de mai 1os:

xv%!&=-01!!!; xv%&=-213!!; xv%2&=-21!!!; xv%0&=-13!!; xv%4&=-1!!!;
yv%!&=#!15!!; yv%&=#!1623; yv%2&=#!144!; yv%0&=#!1223; yv%4&=#!1!!;
xv%3&=-!13!!; xv%6&=#!1!!!; xv%7&=#1!!!; xv%8&=#21!!!; xv%5&=#01!!!;
yv%3&=#!1!23; yv%6&=-!1!!!; yv%7&=#!1!!; yv%8&=#!13!!; yv%5&=#!15!!;
se obine urmtorul ecran:
)e constat o dramatic modificare a alurei curbei pentru o mic variaie a uneia
dintre valorile funciei dintr$unul din nodurile de interpolare.
10
Figura 2. ,l <oilea ecran al aplica;iei
Figura 3. ,proxi:area pentru sinus
Metode de interpolare 11
Figura 4. ,proxi:area afectat <e <riftul ar=u:entului
Metode numerice implementate C
"oncluzia este c metoda de interpolare 9agrange se caracterizeaz printr$o
mare sensibilitate la datele de intrare #i c ea poate genera erori mari ntre nodurile
de interpolare (a se observa domeniul
( ) ) , 2 x
.
.n ultim exemplu de comportare specific a interpolrii 9agrange este prezentat
n continuare. *igura - face referire la polinomul 9agrange ridicat de pe o tabelare a
funciei sinus pe noduri situate n domeniul de argument
[ ] ) , )
. n figura / se indic
modul n care se modific polinomul 9agrange atunci cnd argumentul din nodul de
rang - cre#te cu valoarea 7.+.
&. Te$e de 'tudiu
1! ) se scrie un program C care s cear introducerea de la tastatur a
gradului #i coeficienilor unui polinom #i s afi#eze graficul acestuia. (poi,
programul va cere nodurile de interpolare, afi#nd graficul polinomului
9agrange corespunztor #i expresia analitic a acestuia.
"! ) se fac observaii asupra problemelor ntlnite n scrierea programului.
#! ) se gseasc o soluie de realizare a unor funciuni de tip $oom%&n #i
respectiv $oom%'ut, utile n redimensionarea graficului astfel nct acesta s
se ncadreze n fereastra de afi#are. ( nu se ignora informaia de raportare a
graficului la axe.
(! ) se elimine parametrii redundani transmi#i de funciile funct( #i alfa( n
apelurile realizate.
)!
12