拉格朗日差值法:在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。
概念
一般地,若已知
在互不相同 n+1 个点
处的函数值
( 即该函数过
这n+1个点),则可以考虑构造一个过这n+1 个点的、次数不超过n的多项式
,使其满足:
要估计任一点ξ,ξ≠xi,i=0,1,2,...,n,则可以用Pn(ξ)的值作为准确值f(ξ)的近似值,此方法叫做“插值法”。
称式(*)为插值条件(准则),含xi(i=0,1,...,n)的最小区间[a,b],其中a=min{x0,x1,...,xn},b=max{x0,x1,...,xn}。
定理
满足插值条件的、次数不超过n的多项式是存在而且是唯一的。
一般形式运用方法
在平面上有
共n个点,现作一条函数
使其图像经过这n个点。
作法:设集合
是关于点
的角标的集合,
,作n个多项式
。对于任意
,都有
使得
是n-1次多项式,且满足
并且
。
最后可得
形如上式的插值多项式
称为拉格朗日(Lagrange)插值多项式。
例如:当n=4时,上面的公式可简化为:
这是一个过4个点的唯一的三次多项式。
实际应用
问题描述:在某次使用拉格朗日插值法对一列数据进行填补缺失值时,发现一些异常填充情况,于是修改了原始的差值函数再次拟合,效果较好但在另一些特殊情况下出现了错误的拟合情况,因此对两个差值函数的使用条件进行探究。
调用拉格朗日差值模块:
from scipy.interpolate import lagrange
差值函数1:
差值函数2:
原始数据:catering_sale.xls
测试1——不改变原始数据,分别调用两个差值函数,差值结果如下所示(仅展示缺失值部分):
测试1-差值函数1 测试1-差值函数2
测试1结果表明差值函数1的拟合结果某些值与实际情况偏差较大,差值函数2的拟合结果要优于1,另外可以注意到两个差值函数对于数据中最后一个记录是缺失值的情况,拟合结果均较差。
测试2——改变原始数据,将开头的数据变为缺失值:
测试2-差值函数1 测试2-差值函数2
从结果可以观察到,当数据中起始记录为缺失值时,两个差值函数均有较大误差但拟合数据相同,说明两个差值函数对于该情况的拟合效果是无差别的。
测试3——将最后一个记录数据补齐,但将倒数第二个数据设为缺失值:
测试3-差值函数1 测试3-差值函数2
从结果可以看到,当数据中末端数据不为空,而倒数第二位数据为空时,就缺失值的填充效果而言,仍然是差值函数2效果更优。
总上所述:
- 当数据集的开头或末尾存在数据缺失时,可以理解成填补的缺失值仅有左端数据或仅有右端数据时,拉格朗日差值法会存在较大的偏差,该种情况以上两种差值函数均无法避免,但差值函数2与实际情况要更接近一些;
- 当数据集仅中间部分存在数据缺失时,差值函数2的表现要优于差值函数1;
- 综合1和2,基于拉格朗日差值法,差值函数2的拟合效果优于差值函数1。
代码:
欢迎大家关注我的公众号:Allen陪你玩数据