例1:在区间[-1,1]上用等距节点对龙格函数 f ( x ) = 1 ( 1 + 25 x 2 ) f(x)=\frac{1}{(1+25x^2)} f(x)=(1+25x2)1作nearest、linear、spline这三种多项式插值,分别画出插值函数及f(x)的图形。
则matlab中.m文件代码为:
clc
x=(-1:0.2:1);
y=1./(1+25*x.^2); %生成测试数据
x1=(-1:0.1:1); %插值点
y0=1./(1+25*x1.^2); %插值点真实值
y1=interp1(x,y,x1,'nearest'); %最接近点插值
disp('interp1函数插值时间');tic
y2=interp1(x,y,x1);toc; %interp1插值时间
y3=interp1(x,y,x1,'spline'); %三次样条插值
disp('interp1函数插值时间');tic
yq=interp1(x,y,x1);toc; %interpl插值时间
plot(x1,y1,'--',x1,y2,'-',x1,y3,'-.',x,y,'*',x1,y0,':')
legend('nearest插值数据','linear插值数据','spline插值数据','样本数据点','插值点真实数据')
max(abs(y0-y3))
图像如图1所示:
相关说明:tic与toc
tic和toc是用来记录matlab命令执行的时间。tic用来保存当前时间,而后使用toc来记录程序完成时间。两者往往结合使用。
用法如下:
tic
operations
toc
显示时间单位: 秒
上述代码运行时间如下图所示: