一、引述
1.1 插值算法
问题如下:
已经有个节点
,其中
互不相同不妨假设
,求任一插值点
处的插值
.
思路:构造函数,使
过所有节点,求
即可得到
.
2.2 拟合算法
略
二、插值算法的应用
2.1 多项式插值
2.1.1 拉格朗日插值
在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫∙路易斯∙拉 格朗日命名的一种多项式插值方法。在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。
拉格朗日插值多项式一般形式为,
其中,
令
,
.
从而得到拉格朗日插值多项式,
.
2.1.2 牛顿插值
2.1.3 拉格朗日插值与牛顿插值的比较
比较:与拉格朗日插值法相比,牛顿插值法的计算过程具有继承性。 (牛顿插值法每次插值只和前n项 的值有关,这样每次只要在原来 的函数上添加新的项,就能够产生新的函数) 但是牛顿插值也存在龙格现象的问题。
小结:上面讲的两种插值仅仅要求插值多项式在插值节点处与被插函数有相等的函数值,而这种插值多项式却不能全面反映被插值函数的性态。 然而在许多实际问题中,不仅要求插值函数与被插值函数在所有节点处有相同的函数值,它也需要在一个或全部节点上插值多项式与被插函数有相同的低阶甚至高阶的导数值。
2.1.4 龙格现象
高次插值会产生龙格现象,即在两端处波动极大,产生明显的震荡。在不熟悉曲线运动趋势的前提下,不要轻易使用高次插值
2.2 分段插值
为了避免龙格现象,我们一般不使用多项式插值,而是用分段插值。
2.2.1 埃尔米特插值
直接使用Hermite插值得到的多项式次数较高,也存在着龙格现象, 因此在实际应用中,往往使用分段三次 Hermite 插值多项式 (PCHIP)。
2.2.2 三次样条插值
小结:
- 插值算法一般用于插值区间内部的点的函数值的估计或短期预测估计 。
- 三次样条插值使用较多。
三、拟合算法的应用
3.1 拟合与插值的区别
与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)。
3.2 最小二乘法
3.2.1 最小二乘法的几何解释
注意:
- 第一种定义有绝对值,不容易求导,因此计算比较复杂。 所以我们往往使用第二种定义,这也正是最小二乘的思想。
- 为什么不用四次方? (1)避免极端数据对拟合曲线的影响。 (2)最小二乘法得到的结果和MLE极大似然估计一致。
- 为什么不用奇数次方?误差会正负相抵。
3.2.2 最小二乘法的求解
3.3 拟合好坏的评价标准
3.3.1 拟合优度
注意:
只能用于拟合函数是
线性函数
时,拟合结果的评价。 线性函数和其他函数(例如复杂的指数函数)比较拟合的好坏,直接看
SSE
即可。
3.3.2 SST=SSE+SSR的证明
3.4 线性函数
3.4.1 什么是线性函数?
3.4.2 如何判断线性函数?
四、算法代码实现
//FileName:G_Insert
%% 数据插值
% 一维三次埃尔米特插值
x=-pi:pi;
y=sin(x);
new_x=-pi:0.1:pi;
new_y1=pchip(x1,y1,new_x1);
figure(1);
plot(x,y,'bo',new_x1,new_y1,'r-');
% 一维三次样条插值
new_y2=spline(x,y,new_x);
hold on
plot(new_x,new_y2,'k-');
legend('样本点','三次埃尔米特插值值','三次样条插');
% 二维插值
xx=-5:5;yy=-5:5;
zz=rand(size(xx,2),size(yy,2));
new_xx=-5:0.05:5;new_yy=-5:0.05:5;
new_zz=interp2(xx,yy,zz,new_xx,new_yy','spline');% 二维插值
mesh(new_xx,new_yy,new_zz);% mesh函数用于画三维曲面图
//FileName:G_Fit
略
五、总结
小结:
- 插值算法要求必须经过所有样本点,而拟合算法则不必经过所有样本点只需让拟合出的曲线与样本点最为接近就行。
- 插值次数过高会出现龙格现象。
- 拟合优度只用于拟合函数是线性函数时。
疑问:
- 拉格朗日插值法等的原理如何证明?
- 拟合函数为非线性函数时用什么评价标准来评价拟合的好坏?