拉格朗日插值——基于scipy实现

来源:互联网 发布:权限管理的软件 编辑:程序博客网 时间:2024/05/30 19:35

拉格朗日插值数学原理

在节点上给出节点基函数,然后做基函数的线性组合,组合系数为节点函数值,这种插值多项式称为拉格朗日插值公式
已最简单的两点插值为例,已知函数y = f (x)在给定互异点x0, x1上的值为y0= f (x0),y1=f (x1)线性插值就是构造一个一次多项式
P1(x) = ax + b
使它满足条件
P1 (x0) = y0 ,P1 (x1) = y1
其几何解释就是一条直线,通过已知点A (x0, y0),B(x1, y1)。
线性插值计算方便、应用很广,但由于它是用直线去代替曲线,因而一般要求[x0, x1]比较小,且f(x)在[x0, x1]上变化比较平稳,否则线性插值的误差可能很大。为了克服这一缺点,有时用简单的曲线去近似地代替复杂的曲线,最简单的曲线是二次曲线,用二次曲线去逼近复杂曲线的情形。
具体可见:
http://blog.csdn.net/jiangnanyouzi/article/details/5698122

python 实现

from scipy.interpolate  import lagrangex = [3, 6, 9]y = [10, 8, 4]lagrange(x,y)#poly1d([ -0.11111111,   0.33333333,  10.        ])

以上 lagrange(x,y) 的输出值 poly1d([−0.11111111,0.33333333,10.]) 值的是多项式的三个系数
即: a0=−0.11111,a1=0.3333333,a2=10.
如果要进行插值操作,可以:

lagrange(x, y)(10)# 2.222222
0 0
原创粉丝点击