一、插值与拟合
可以用范德蒙行列式和克莱姆法则证明:在x0,x1,..., xn处取值y0,y1,...,yn的多项式存在且唯一,即插值问题的解唯一存在
1、拉格朗日插值法:
指的是在节点上给出节点基函数,然后做基函数的线性组合,组合系数为节点函数值的一种插值多项式
2、高次插值的Runge现象
在研究插值问题的初期,所有人都想当然的认为插值多项式的次数越高,插值精度越高。Runge发现上述结论仅仅在插值多项式的次数不超过七时成立,超过7时,插值多项式会出现严重的震荡现象,称为Runge现象
(下图中红色是原函数,蓝色是10次插值拟合的函数)在边缘处会因为高次拟合产生震荡现象
因此,在实际中不应使用七次以上插值。
避免Runge现象的常用方法是:将插值区间分成若干小区间,在小区间内用低次(二次、三次)插值,即分段低次插值。
下面分别是拉格朗日插值,线性插值,样条插值,可以看到拉格朗日插值出现明显Runge现象,线性插值就像是连起来的,样条插值效果好一点。
这里看起来像曲线是因为插入了非常多的点,也算执行了曲线拟合的功能
3、二维插值
(1)在matlab中'method'表示插值方法:‘nearest’——最邻近插值,‘linear’——双线性插值,‘spline’——双三次样条插值,‘cubic’——双立方插值,默认双线性插值
原图:
原图用面画出:
双线性插值:
立方插值:
(2)散乱点插值:
前面讨论的插值问题的插值点(x,y)均为网格点。党(x,y)为散乱点时,可用griddata(x,y,z,xi,yi,'method')
4、拟合方法
第一问是典型的插值问题,但是对于第二问,高次插值会有问题:
高次插值出现了Runge现象,外推t>12时的数据出现了巨大的误差。
样条插值在0~12可以很好地解决第一个问题,但第二个图显示,用样条插值外推t>12时的数据也会产生较大误差。所以第二问不宜用插值方法。
插值的次数就是带入点的数量:(感觉插值也是某种拟合)
解决第2问的常用方法是,根据1到12点间的温度数据求出温度与时间之间的近似函数关系f(t),由f(t)推断t=13.5时的温度
拟合问题和插值问题的区别在于:
(1)插值函数过已知点,而拟合函数不一定过已知点
(2)插值主要用于求函数值,而拟合的主要目的是求函数关系,从而进行预测等进一步的分析
当然,某些特定问题既可以用插值也可以用拟合。(我的理解是,插值拟合出的函数更不好接近原函数,只是在某个范围内能够比较好的预测函数的值,比如Runge现象会使插值拟合的函数偏离原函数,而拟合问题算出的函数可以更好的拟合出原函数)
曲线拟合需解决如下两个问题:
(1)线型的选择
(2)线型中参数的计算
线型的选择是拟合计算的关键和难点。通常主要根据专业知识和散点图确定线型。线型拟合中参数的计算可采用最小二乘法,而非线性拟合参数的计算则要应用Gauss-Newton迭代法
下图非线性拟合需要算出其中的未知数
二、灰度预测模型
1、灰色系统、白色系统和黑色系统
白色系统是指一个系统的内部特征是完全已知的,既系统信息是完全充分的。
黑色系统是一个系统的内部信息对外界来说是一无所知的,只能通过它与外界的联系来加以观测研究。
灰色系统介于白色和黑色之间,灰色系统内的一部分信息是已知的,另一部分信息是未知的,系统内各因素间有不确定的关系。
2、对原数据进行处理从而弱化随机序列的波动性和随机性,对数据进行降噪
一般处理的方法有累加(AGO),累减(IAGO),邻值加权,一次或多次级比(数列错位相除),对数变化等处理后使数据表现出明显的规律和趋势。对于这个原始数据来说直接使用累加就可以达到使数据的规律和趋势更加明显的作用。累加生成能使任意非负数列、摆动的与非摆动的,转化为非减的、递增的。
3、求新生成数列的回导数方程