拉格朗日插值法及python实现

在这里插入图片描述

python 实现

方法一:
#bao
from scipy.interpolate import lagrange
x=[1,3,5]
y=[2,10,1]
print(lagrange(x,y))#拟合曲线
print(lagrange(x,y)(10))#估值`

结果:

        2
-2.125 x + 12.5 x - 8.375
-95.875
方法二:
#python
import numpy
import matplotlib
from matplotlib import pyplot
x=[1,3,5]
y=[2,10,1]
def lagrange_interploate(x1):
    P=[]
    L_n=0
    for i in range(len(x)):
        numerator=1
        denominator=1
        for j in range(len(x)):
            if j!=i:
                numerator*=(x1-x[j])
                denominator*=(x[i]-x[j])
        P.append(numerator/denominator)

    for i in range(len(x)):
        L_n+=y[i]*P[i]

    return round(L_n,3)

print(lagrange_interploate(10))

结果:

-95.875
拟合曲线图像:
x2=numpy.linspace(-10,10,20,endpoint=False)
print(x2)
y2=[]
for i in range(len(x2)):
    y2.append(lagrange_interploate(x2[i]))
print(y2)

pyplot.plot(x2,y2)
pyplot.scatter(x,y,marker='.')
pyplot.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值