插值:求过已知有限个数据点的近似函数。
区别于拟合:
拟合:已知有限个数据点求近似函数,不要求过已知数据点,只要求在某种意义下它在这些点上的总偏差最小。
基本常用的插值方法:拉格朗日多项式插值,牛顿插值,分段线性插值,Hermite插值,三次样条插值。
MATLAB使用interp1来实现一维插值。
Vq = interp1(X,V,Xq,METHOD)
- X为自变量的取值范围,V为函数值(或者与X长度一样的向量),Xq为插值点向量或数组,METHOD设定插值方法
- METHOD='nearest',邻近点插值。插值点函数值估计为与该插值点最近的数据点函数值
- METHOD='linear',线性插值法。根据相邻数据点的线性函数估计落在该区域内插值数据点函数值。
- METHOD='spline',三次样条插值。这种方法在相邻数据点间建立三次多项式函数,根据多项式函数确定插值数据点的函数值。
- METHOD='pchip'或'cubic',立方插值。通过分段立方Hermite插值方法计算插值结果。
上述方法的优缺点:
-
邻近点插值方法的速度快,但平滑性差。
-
线性插值占用内存多,运行时间长;但结果是连续的,但在顶点处斜率会改变。
-
三次样条运算时间最长,但内存占用比立方插值少,其差值数据和导数