MATLAB实现多项式插值函数 【例】

%分别用分段线性插值、此次方程式插值和样条插值确定插值函数并进行比较
%月儿半弯 
x=0:10; 
y=cos(x); 
xi=0:.25:10; 
y0=cos(xi); 
%精确值 y1=interp1(x,y,xi); %线性插值结果 
y2=interp1(x,y,xi,'cubic'); %三次方程式插值结果 
y3=interp1(x,y,xi,'spline'); %样条插值结果 
subplot(2,2,1); 
plot(xi,y0,'or',xi,y1,xi,y2,'-.b',xi,y3,'*g'); 
title('interp1 一维插值'); 
xlabel('x'); 
ylabel('y'); 
axis([1 10 -2 2]) 
legend('y1','y2','y3'); 
grid 

%原图与线性插值的差图结果 
subplot(2,2,2); 
plot(xi,y0-y1); 
axis([1 10 -0.2 0.2]) 
title('原图与线性插值的差图结果'); 
grid 

%原图三次方程式插值的差图结果 
subplot(2,2,3); 
plot(xi,y0-y2); 
axis([1 10 -0.2 0.2]) 
title('原图与三次方程式插值的差图结果'); 
grid 

%原图样条插值的差图结果 
subplot(2,2,4); 
plot(xi,y0-y3); 
axis([1 10 -0.2 0.2]) 
title('原图与样条插值的差图结果'); 
grid

 
结果如下所示:  
MATLAB实现多项式插值函数 <wbr>【例】

posted @ 2013-03-04 16:09  dreamsyeah  阅读(1085)  评论(0编辑  收藏  举报