Python实现拉格朗日插值法

匿名 (未验证) 提交于 2019-12-02 22:11:45

已知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^),

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!