插值算法
一,插值算法的作用
现状一:当现有的数据是极少的,不足以支撑分析的进行
解决方案一:“模拟产生”一些新的但又比较靠谱的值来满足需求,这也就是插值的作用
现状二:当已知当前数据,需要预测其他数据
解决方案二:通过已知数据,模拟出多项式方程,进而预测其他数据
二,插值法的定义
三,插值法的分类
四,插值法的原理
五,插值算法分类
拉格朗日插值算法:寻找一个通过所有点的多项式(建模不会用它,只是为了给大家介绍一些概念)
拉格朗日插值的缺点:
图片:
图片解释:高次插值会产生龙格现象,两端的函数值动荡极大,在不清楚曲线的运动趋势时,别使用高次插值
降低龙格现象的方法:分段插值
分段插值的思路:
分段插值法:
牛顿插值法的定义:(大家没必要看懂,我也没看懂,毕竟建模也不会用它!!)
缺点:与拉格朗日插值法相比,牛顿插值法的计算过程具有继承性。(牛顿插值法每次插值只和前项的值有关,这样每次只要在原来的函数上添加新的项,就能够产生新的函数)但是牛顿插值也存在龙格现象的问题
总结与点评前两种插值算法:
上面讲的两种插值仅仅要求插值多项式在插值节点处与被插函数有相等的函数值,而这种插值多项式却不能全面反映被插值函数的性态。然而在许多实际问题中,不仅要求插值函数与被插值函数在所有节点处有相同的函数值,它也需要在一个或全部节点上插值多项式与被插函数有相同的低阶甚至高阶的导数值。对于这些情况,拉格朗日插值和牛顿插值都不能满足。
建模常用两类插值算法
一,埃尔米特插值
优势:不但要求在节点上的函数值相等,而且还要求对应的导数值也相等,甚至要求
高阶导数也相等,满足这种要求的插值多项式就是埃尔米特插值多项式。
缺点:直接使用Hermite插值得到的多项式次数较高,也存在着龙格现象
解决方案:分段三次 Hermite 插值多项式 (PCHIP)能够较好的降低龙格现象的发生
使用软件:Matlab
例题:
x = ‐pi:pi; y = sin(x);
new_x = ‐pi:0.1:pi;
p = pchip(x,y,new_x); %参数解释:new_x需要插值的x值,pchip为调用PCHIP算法的函数
plot(x, y, 'o', new_x, p, 'r‐')
绘制图形:
图片解释:蓝色圆圈为已知点,红色曲线为三次埃尔米特插值的结果
注意!!!!!
plot函数用法:
plot(x1,y1,x2,y2)
线方式: ‐ 实线 :点线 ‐. 虚点线 ‐ ‐ 波折线
点方式: . 圆点 +加号 * 星号 x x形 o 小圆
颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青
二,三次样条插值(这个是我认为最叼的!!!!!)
优势:相比于埃尔米特插值,三次样条插值考虑的因素更多,三次样条生成的曲线更加光滑
使用软件:Matlab
例题:
x = ‐pi:pi;
y = sin(x);
new_x = ‐pi:0.1:pi;
p1 = pchip(x,y,new_x); %分段三次埃尔米特插值
p2 = spline(x,y,new_x); %三次样条插值
plot(x,y,'o',new_x,p1,'r‐',new_x,p2,'b‐')
legend('样本点','三次埃尔米特插值','三次样条插值',
‘Location’,‘SouthEast’) %标注显示在东南方向
图片:
图片解释:相比于三次埃尔米特插值,三次样条插值曲线更光滑
n维数据的插值