先放代码,有时间补内容
def LagrangeInterpolation(x, y, x0):
m = len(x)
n = len(y)
assert m==n
L = 0
l = [1]*n
for j in range(n):
for i in range(n):
if i != j:
l[j] *= (x0-x[i])/(x[j]-x[i])
L += y[j]*l[j]
print(L)
if __name__ == '__main__': #当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。
x = [0.4,0.5,0.7,0.8]
y = [-0.916291,-0.693149,-0.356675,-0.223144]
x0 = 0.6
LagrangeInterpolation(x, y, x0);