通过Matlab对龙格函数作nearest、linear、spline这三种多项式插值

  例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
  显示时间单位: 秒
  
  上述代码运行时间如下图所示:
在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_44359479/article/details/115587345