您的位置:首页 > 编程语言 > Python开发

Python实现拉格朗日插值法

2018-10-18 11:21 519 查看

已知sinx的一组x,y对应关系,用拉格朗日插值法估计sin(0.3367)的值.

x x0.32 0.34 0.36
y 0.314567 0.333487 0.352274

/
/

class Interpolation:
def __init__(self, x, y):
self.x = x
self.y = y

def func(self, X):
s = 0
for i in range(len(self.x)):
W = 1
w = (X - self.x[i])
for j in range(len(self.x)):
W *= (X - (self.x[j]))
if i == j:
continue
else:
w *= (self.x[i] - self.x[j])
L = self.y[i] * W / w
s += L
print(round(s, 8))

while (True):
x=input('x:')
y=input('y:')
X=input('X:')
if x=='Q' or y=='Q' or X=='Q':
break
else:
p1 = Interpolation(eval(x),eval(y))   # 前面是x的取值,后面是y的取值;
p1.func(eval(X))   # 现在要计算的是  sin(0.3367)  的值

程序还有好多不足的问题需要改进(^o^),

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python 数学 插值法