matlab插值法实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Several Typical Interpolation in Matlab

Lagrange Interpolation

Supposing:

If x=175, while y=?

Solution:

Lagrange Interpolation in Matlab:

function y=lagrange(x0,y0,x);

n=length(x0);m=length(x);

for i=1:m

z=x(i);

s=0.0;

for k=1:n

p=1.0;

for j=1:n

if j~=k

p=p*(z-x0(j))/(x0(k)-x0(j));

end

end

s=p*y0(k)+s;

end

y(i)=s;

end

input:

x0=[144 169 225]

y0=[12 13 15]

y=lagrange(x0,y0,175)

obtain the answer:

x0 =

144 169 225

y0 =

12 13 15

y =

13.2302

Spline Interpolation

Solution :

Input x=[ 1 4 9 6];y=[ 1 4 9 6];x=[ 1 4 9 6];pp=spline(x,y) pp = form: 'pp' breaks: [1 4 6 9] coefs: [3x4 double] pieces: 3 order: 4 dim: 1 output : pp.coefs ans =

-0.0500 0.5333 -0.8167 1.0000 -0.0500 0.0833 1.0333 2.0000 -0.0500 -0.2167 0.7667 4.0000 It shows the coefficients of cubic spline polynomial , so:

S (x )=,

169,3)9(1484.0)9(0063.0)9(0008.0,94,2)4(2714.0)4(0183.0)4(0008

.0,

41,1)1(4024.0)1(0254.0)1(0008.0232

3

23≥≤+-+---≥≤+-+---≥≤+-+---x x x x x x x x x x x x

Newton’s Interpolation

Resolve

65

Solution:

Newton’s Interpolation in matlab :

function yi=newint(x,y,xi); n=length(x); ny=length(y); if n~=ny

error end

Y=zeros(n);Y(:,1)=y';

for k=1:n-1

for i=1:n-k

if abs(x(i+k)-x(i))

Y(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i)); end

end

m=length(xi);yi=zeros(1,m); for i=1:n; z=ones(1,m); for k=1:i-1; z=z.*(xi-x(k)); end

yi=yi+Y(1,i)*z; end

input:

x=[1 4 9]; y=[1 2 3];

xi=[5 6];

yi=newint(x,y,xi);

operate the program and obtain the answer : yi=

2.2667 2.5000

The difference between several One-dimensional Interpolations like `nearest`、`linear`、`spline`、`cubic`

Supposing ()π4,0∈x ,y = sin(x).*exp(-x/5),plot the figure . Solution:

program of MA TLAB : x = 0:1:4*pi;

y = sin(x).*exp(-x/5); xi = 0:0.1:4*pi;

y1 = interp1(x, y, xi, 'nearest'); y2 = interp1(x, y, xi, 'linear'); y3 = interp1(x, y, xi, 'spline'); y4 = interp1(x, y, xi, 'cubic');

plot(x, y , 'o', xi ,y1 ,'g-' ,xi ,y2 ,'r:' ,xi ,y3 ,'k-.', xi, y4, 'b--'); legend('Original', 'Nearest', 'Linear', 'Spline', 'Cubic'); operate the program and obtain the figure :

(It shows that the smoothness of 'nearest' is the worst and `cubic` is the best.)

相关文档
最新文档