数学建模中的常用插值算法与代码实践
目录
数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,“模拟产生”一些新的但又比较靠谱的值来满足需求,这就是插值的作用
问题提出
一、插值法的定义
二、非重点插值法的介绍
在现代数值分析中,有多种插值算法,其各有优劣,在本篇文章中会粗略介绍非重点插值方法
1.多项式插值
2.拉格朗日插值
(1)低阶拉格朗日插值
(2)拉格朗日插值的抽象数学表达
3.分段插值法
以上两种方法是对数据一次性进行插值,偏差较大,而分段插值法通过将多个数据点分成n-1给小段,对这些小段分别进行插值,有助于提高精度
(1)分段线性插值与分段二次插值
(2)牛顿插值法
三、龙格现象
龙格现象简单来说就是在两端处波动极大,产生明显的震荡。
四、为什么不选择上述的插值方法?(省流:不光滑)
上面讲的插值仅仅要求插值多项式在插值节点处与被插函数有相等的函数值,而这种插值多项式却不能全面反映被插值函数的性态。
然而在许多实际问题中,不仅要求插值函数与被插值函数在所有节点处有相同的函数值,它也需要在一个或全部节点上插值多项式与被插函数有相同的低阶甚至高阶的导数值。
对于这些情况,拉格朗日插值和牛顿插值都不能满足。
五、埃尔米特(Hermite)插值
1.埃尔米特插值的基本思路与原理
2.分段三次埃尔米特插值的代码实现
直接使用Hermite插值得到的多项式次数较高,也存在着龙格现象,因此在实际应用中,往往使用分段三次 Hermite 插值多项式 (PCHIP)
(1)pchip代码
使用pchip代码得到的结果是依据原数据点,把新数据点x_new向量给出对应的y_new
(2) plot函数可视化
plot函数中,可以设置第三个参数来调整数据点的连接方式与颜色,顺序为:颜色——点——线
六、三次样条插值
1.三次样条插值的原理
2.三次样条插值的代码实现
(1)pline函数
(2)legend(图例) 函数
legend函数可以给图例命名与调整图例的方向
(3)插值结果对比
七、n维数据的插值
在数学建模中,一般不会直接给一个多项函数让你插值,因此此处仅作了解