清风数学建模第三讲——插值问题学习笔记
思路:构造函数y=f(x),使得f(x)过所有节点,求f(x*)即可得到y*
分类:多项式插值、分段插值、三角插值(三角插值一般要用到傅里叶变换等复杂的数学工具)
本章只讨论多项式插值和分段插值
多项式插值的问题:插值多项式次数高精度未必显著提高;插值多项式次数越高摄入误差可能显著增大
高次插值会产生龙格现象,即在两端处波动较大,产生明显的震荡。故在不熟悉曲线运动趋势的前提下,不要轻易使用高次插值
提高插值精度的方法:采用分段低次插值(常用分段二次插值或分段三次插值)
拉格朗日插值和牛顿插值都存在龙格现象
1.与拉格朗日插值法相比,牛顿插值法的计算过程具有继承性(牛顿插值法每次插值只和前n项的值有关,这样每次只要在原来的函数上添加新的项,就能够产生新的函数)
2.两种插值法的另一个缺点:两种插值仅仅要求插值多项式在插值节点处与被插函数有相等的函数值,而这种插值多项式不能全面反映被被插值函数的性态
直接使用Hermite插值得到的多项式次数较高,也存在龙格现象,因此在实际应用中,往往使用分段三次Hermite插值多项式(PCHIP)
MATLAB有内置的函数:p=pchip(x,y,new_x)
x是已知的样本点的横坐标,y是已知的样本点的纵坐标,new_x是要插入处对应的横坐标
% 分段三次埃尔米特插值
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-')
% plot函数用法:
% plot(x1,y1,x2,y2)
% 线方式: - 实线 :点线 -. 虚点线 - - 波折线
% 点方式: . 圆点 +加号 * 星号 x x形 o 小圆
% 颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青
详见数值计算课本