插值算法

文章目录

  • 前言
  • 一、插值是什么?
  • 二、使用步骤
    • 1.选择插值方法
    • 2.求平均
  • 总结


前言

数据较少时,难以进行模型的分析,这时候就需要插值。


编程语言为matlab

一、插值是什么?

插值就是使用数学方法模拟构造新的值。常用于短期预测问题。
若有n+1个不同的节点(xi,yi),则存在唯一多项式(多项式次数一定)
在这里插入图片描述

一维插值
分段插值:分段多项式
三角插值:常用到傅里叶变换等复杂算法

拉格朗日插值法:使用较少,会有龙格现象(边缘波动大),高次插值要谨慎使用,误差可能增大。只有值相同,无法满足导数相同等要求

牛顿插值法:使用较少,具有继承性,只和前n项的值有关,在尾部添加新的项。也有龙格现象的问题。只有值相同,无法满足导数相同等要求

分段低次插值:使用较多,一次(线性)、二次(抛物)、三次。

诶尔米特插值(Hermite):保证函数与导数都相同。

分段三次诶尔米特插值(PCHIP):使用最多,解决了龙格现象。

三次样条插值:使用最多,曲线更光滑,要求二阶连续可微,每个子区间为三次多项式等

n维数据的插值:调用interpn函数,默认的method是线性插值(linear)。cubic:三次插值、spline三次样条插值、nearest:最邻近插值。

二、使用步骤

1.选择插值方法

分段三次诶尔米特插值(PCHIP):调用pchip函数

x = -pi:pi; 
y = sin(x); 
new_x = -pi:0.1:pi;
p = pchip(x,y,new_x);

三次样条插值:调用spline函数

p2 = spline(x,y,new_x);

2.求平均

因为不知道数据生成的方法,所以可以使用多个方法求出插值后求平均


总结

插值算法常用于短期预测问题,可以处理数据。可用于数据量较小的情况。拟合则需要的数据量较多,不要求一定经过这些点,保证精度即可。

你可能感兴趣的:(数模)