You are on page 1of 21

3.

Interpolacija
3.1 Hermite-ov polinom 3.2 Interpolacioni splajn 3.3 Dvodimenziona interpolacija NUMERIKE METODE
Novembar-Decembar 2007. urevac Nataa

3.0.3 Lagrange-ov polinom

Lagrange-ov polinom i MATLAB


je mogue direktno konstruisati korienjem funkcije p = polyfit( x , y , n )
argumentima x i y je predstavljena tabela interpolacije; n je stepen odgovarajueg polinoma. f-ja vraa koeficijente interpolacionog polinoma. Primer: Prava koja sadri take (0,0) i (1,1). polyfit([0 1],[0 1],1)

Takodje, neophodno je i korienje funkcije y = polyval ( p , x )


rauna vrednosti y polinoma p, stepena n, u takama x; Izraunati vrednost polinoma x=[1 2 1] u taki 6. polyval(x,6) Primer : lagrange_cebisev.m interp1LagrangeBad.m interp1Lagrange.m

Poly([1 1]) -> 1 -2 1


Za nule [1 1] vraa polinom (obrnuto od roots)
X0 , X1 , ..., X i-1 , Xi, Xi+1, , Xn 1 1 1 0 1 1 Primer: Napisati MATLAB program kojim se interpolira sin(x) na (0,3*pi) ako su dati redom 2,3,4,5,6 vorova. f = 'sin(x)';
x=[0:3*pi/100:3*pi]; x_sample=x; plot(x,eval(f),'b'); hold on for i=2:6 x=linspace(0,3*pi,i); y=eval(f); c=polyfit(x,y,i-1); plot(x_sample,polyval(c,x_sample),'b--') end

yi = interp1(x,y,xi,method) 'nearest Nearest neighbor interpolation 'linear'Linear interpolation (default) 'spline'Cubic spline interpolation 'pchip'Piecewise cubic Hermite interpolation 'cubic'(Same as 'pchip') Primer: interp1_demo.m (zbirka 59.strana)

3.1 Hermite-ov polinom

Implementacija interpolacije Hermite-ovim polinomom :


NOVO: Y=interp1Hermite(varargin)
VARARGIN-promenljiv broj ul. argumenata f-je.

prod(v)
PROD(v) je proizvod elemenata vektora v (npr. prod(1:3)=3! ). TRIK: formiranje polinoma P P=c1+c2*(x-x0)+...+c(n+1)*(x-xo)^(n0)*(x-x1)^(n1)*..(x-xm)^(nm-1) P=c1+(x-x0)*P1 P1=c2+(x-x0)*P2 Pn=c(n+1)

interp1Hermite.m poziv: interp1Hermite([-1 5 -3 -32],[0 1 0],[1 7 17 52])

3.2 Interpolacioni splajn

Koristei ugradjenu MATLAB f-ju csape(x,y,endcond) konstruisati kubni interpolacioni splajn za zadatu f-ju: F(1)=0; F(2)=1; F(3)=2; F(4)=0, pri emu je splajn (a) prirodni (b) periodini (c) sa zadatim izvodima S(1)=2,S(4)=2. Izraunati vrednost periodinog splajna u taki x=2.5, a zatim grafiki prikazati sve splajnove.

% Cvorovi interpolacije x = [1 2 3 4]; y = [0 1 2 0]; % Konstruisemo splajnove spl_per = csape(x, y, 'periodic'); %periodicni spl_nat = csape(x, y, 'second'); %prirodni spl_es = csape(x, [2 y 2], 'complete'); %zadati izvodi % Vrednost periodicnog splajna u 2.5 ppval(spl_per, 2.5) % Crtanje splajnova na [1, 4] xx = linspace(1, 4); plot(xx, ppval(spl_per, xx), xx, ppval(spl_nat, xx), xx, ... ppval(spl_es, xx), x, y, 'o') legend('periodicni', 'prirodni', 'zadati izvodi', 'cvorovi')

3.3 Drugi vidovi interpolacije Dvodimenziona interpolacija

MATLAB i viedimenziona interpolacija


Z=interp2(x,y,z,X,Y)
x,y,z definiu skup taaka na diskretnoj, pravougaonoj mrei X,Y su matrice taaka u ravni u kojima se funkcija f(x,y) priblino rauna interpolacijom. matrica Z sadri interpolisane vrednosti polazne funkcije na finijoj mrei X,Y.

Z=interp2(x,y,z,X,Y,method)
method nearest,cubic,linear,spline.

Z=griddata(x,y,z,X,Y)
x,y,z=f ( x, y) definiu skup taaka na diskretnoj, nepravougaonoj mrei X,Y su matrice koje predstavljaju pravougaonu mreu intervala na kojima se vri interpolacija. matrica Z sadri interpolisane vrednosti polazne funkcije na finijoj mrei X,Y.

Z=griddata(x,y,z,X,Y,method)
method nearest,cubic,linear.

Zbirka strana 60-61.

You might also like