插值算法

  • 一、插值算法概述
  • 二、常用插值法
  • 1、拉格朗日插值法
  • 龙格现象
  • 解决龙格现象
  • 分段线性插值
  • 分段二次插值
  • 2、牛顿插值法
  • 两种插值法对比
  • 3、埃尔米特插值法
  • 4、分三段埃尔米特插值法(重点)
  • 5、三次样条插值
  • 6、n 维数据的插值(了解)


一、插值算法概述

插值算法的作用:在数学建模中,常常需要根据已知的函数点进行数据、模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这个时候就需要使用一些数学的方法,‘模拟产生’一些新的但是又比较靠谱的值来满足需求。

插值法在网约车轨 迹数据的应用python 插值算法_插值法


插值法在网约车轨 迹数据的应用python 插值算法_多项式_02


插值法在网约车轨 迹数据的应用python 插值算法_matlab_03


插值法在网约车轨 迹数据的应用python 插值算法_matlab_04

二、常用插值法

1、拉格朗日插值法

插值法在网约车轨 迹数据的应用python 插值算法_插值_05


当有三个点的时候

插值法在网约车轨 迹数据的应用python 插值算法_多项式_06

龙格现象

在数值分析领域中,龙格现象是在一组等间插值点上使用具有高次多项式的多项式插值时出现的区间边缘处的振荡问题。 它是由卡尔・龙格(Runge)在探索使用多项式插值逼近某些函数时的错误行为时发现的。 这一发现非常重要,因为它表明使用高次多项式插值并不总能提高准确性。 该现象与傅里叶级数近似中的吉布斯现象相似。

插值法在网约车轨 迹数据的应用python 插值算法_插值法_07

解决龙格现象
分段线性插值

插值法在网约车轨 迹数据的应用python 插值算法_数学建模_08

分段二次插值

插值法在网约车轨 迹数据的应用python 插值算法_多项式_09

2、牛顿插值法

插值法在网约车轨 迹数据的应用python 插值算法_插值法_10

两种插值法对比

插值法在网约车轨 迹数据的应用python 插值算法_插值_11


但是这两种插值法都无法反映出被插函数的性态。

3、埃尔米特插值法

不少实际的插值问题不但要求在节点上的函数值相等,而且还要求对应的导数值也相等,甚至要求高阶导数也相等,满足这种要求的插值多项式就是埃尔米特插值多项式。

插值法在网约车轨 迹数据的应用python 插值算法_matlab_12


插值法在网约车轨 迹数据的应用python 插值算法_matlab_13

4、分三段埃尔米特插值法(重点)

插值法在网约车轨 迹数据的应用python 插值算法_插值法_14


代码如下:

x = -pi:pi; y = sin(x); 
new_x = -pi:0.1:pi;
p = pchip(x,y,new_x);
figure(1); 
plot(x, y, 'o', new_x, p, 'r-')

插值法在网约车轨 迹数据的应用python 插值算法_数学建模_15

5、三次样条插值

插值法在网约车轨 迹数据的应用python 插值算法_数学建模_16


插值法在网约车轨 迹数据的应用python 插值算法_matlab_17


代码如下:

% 三次样条插值和分段三次埃尔米特插值的对比
x = -pi:pi; 
y = sin(x); 
new_x = -pi:0.1:pi;
p1 = pchip(x,y,new_x);   %分段三次埃尔米特插值
p2 = spline(x,y,new_x);  %三次样条插值
figure(2);
plot(x,y,'o',new_x,p1,'r-',new_x,p2,'b-')
legend('样本点','三次埃尔米特插值','三次样条插值','Location','SouthEast')

插值法在网约车轨 迹数据的应用python 插值算法_matlab_18


符合状态较好,但是条件难以满足。

6、n维数据的插值(了解)

插值法在网约车轨 迹数据的应用python 插值算法_数学建模_19