NewTon插值
print("输入X:")
X = list(map(float, input().split(',')))
print("输入Y:")
Y = list(map(float, input().split(',')))
x = float(input())
N = Y[0]
for k in range(1, len(X)):
result = 0.0
M = 1
for i in range(len(X) - k + 1):
L = 1
for j in range(len(X) - k + 1):
if i != j:
L *= (X[i] - X[j])
result += (Y[i] / L)
for m in range(len(X) - k):
M *= (x - X[m])
N += result * M
print(N)
输入X:
0.4,0.55,0.65,0.8,0.9
输入Y:
0.41075,0.57815,0.69675,0.88811,1.02652
0.596
0.631917508079616
牛顿插值与拉格朗日插值类似,只是在逻辑循环方面有点复杂,尤其是定义的变量循环多少次,应该能分辨清楚。