interpolacija

21
3. Interpolacija 3.1 Hermite-ov polinom 3.2 Interpolacioni splajn 3.3 Dvodimenziona interpolacija NUMERIČKE METODE Novembar-Decembar 2007. Đurđevac Nataša

Upload: ana-marinkovic

Post on 07-Oct-2014

55 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interpolacija

3. Interpolacija3.1 Hermite-ov polinom3.2 Interpolacioni splajn

3.3 Dvodimenziona interpolacija

NUMERIČKE METODENovembar-Decembar 2007.

Đurđevac Nataša

Page 2: Interpolacija

3.0.3 Lagrange-ov polinom

Page 3: Interpolacija

Lagrange-ov polinom i MATLAB• je moguće direktno konstruisati korišćenjem

funkcije p = polyfit( x , y , n )argumentima x i y je predstavljena tabela

interpolacije;n je stepen odgovarajućeg polinoma.f-ja vraća koeficijente interpolacionog polinoma.

• Primer:• Prava koja sadrži tačke (0,0) i (1,1).

polyfit([0 1],[0 1],1)

Page 4: Interpolacija

• Takodje, neophodno je i korišćenje funkcije

y = polyval ( p , x )računa vrednosti y polinoma p, stepena n, u

tačkama x;

• Izračunati vrednost polinoma x=[1 2 1] u tački 6. polyval(x,6)

Primer : lagrange_cebisev.minterp1LagrangeBad.minterp1Lagrange.m

Page 5: Interpolacija

• Poly([1 1]) -> 1 -2 1– Za nule [1 1] vraća polinom (obrnuto od roots)

• X0 , X1 , ..., X i-1 , Xi, Xi+1, … , Xn1 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 onfor 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

Page 6: Interpolacija

• 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)

Page 7: Interpolacija

3.1 Hermite-ov polinom

Page 8: Interpolacija
Page 9: Interpolacija
Page 10: Interpolacija

• Implementacija interpolacije Hermite-ovimpolinomom :

• 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 PP=c1+c2*(x-x0)+...+c(n+1)*(x-xo)^(n0)*(x-x1)^(n1)*..(x-xm)^(nm-1)

P=c1+(x-x0)*P1P1=c2+(x-x0)*P2…Pn=c(n+1)

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

Page 11: Interpolacija
Page 12: Interpolacija

3.2 Interpolacioni splajn

Page 13: Interpolacija
Page 14: Interpolacija
Page 15: Interpolacija
Page 16: Interpolacija

• Koristeći ugradjenu MATLAB f-jucsape(x,y,endcond)

konstruisati kubni interpolacioni splajn zazadatu f-ju:

F(1)=0; F(2)=1; F(3)=2; F(4)=0,pri čemu je splajn(a) prirodni(b) periodični(c) sa zadatim izvodima S’(1)=2,S’(4)=2.Izračunati vrednost periodičnog splajna u tački

x=2.5, a zatim grafički prikazati svesplajnove.

Page 17: Interpolacija

% Cvorovi interpolacijex = [1 2 3 4]; y = [0 1 2 0];

% Konstruisemo splajnovespl_per = csape(x, y, 'periodic'); %periodicnispl_nat = csape(x, y, 'second'); %prirodnispl_es = csape(x, [2 y 2], 'complete'); %zadati izvodi

% Vrednost periodicnog splajna u 2.5ppval(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')

Page 18: Interpolacija

3.3 Drugi vidovi interpolacijeDvodimenziona interpolacija

Page 19: Interpolacija
Page 20: Interpolacija

MATLAB i višedimenzionainterpolacija

• Z=interp2(x,y,z,X,Y)– x,y,z definišu skup tačaka na diskretnoj,

pravougaonoj mreži– X,Y su matrice tačaka u ravni u kojima se

funkcija f(x,y) približno računa interpolacijom.– matrica Z sadrži interpolisane vrednosti

polazne funkcije na finijoj mreži X,Y.• Z=interp2(x,y,z,X,Y,method)

– method ‘nearest’,’cubic’,’linear’,’spline’.

Page 21: Interpolacija

• Z=griddata(x,y,z,X,Y)– x,y,z=f ( x, y) definišu skup tačaka na

diskretnoj, nepravougaonoj mreži– X,Y su matrice koje predstavljaju

pravougaonu mrežu intervala na kojima se vrši interpolacija.

– matrica Z sadrži interpolisane vrednosti polazne funkcije na finijoj mreži X,Y.

• Z=griddata(x,y,z,X,Y,method)– method ‘nearest’,’cubic’,’linear’.Zbirka strana 60-61.