咱们先来拟合一个最高次为2次的多项式(此时固定n = 3)
Code
#拉格朗日插值公式
x = []
y = []
n = 3
for i in range(n) :
v = input()
v = int(v)
x.append(v)
for i in range(n) :
v = input()
v = int(v)
y.append(v)
def f(X) :
return ((X - x[1]) * (X - x[2]) / (x[0] - x[1]) * (x[0] - x[2])) * y[0] + ((X - x[0]) * (X - x[2]) / (x[1] - x[0]) * (x[1] - x[2])) * y[1] + ((X - x[0]) * (X - x[1]) / (x[2] - x[0]) * (x[2] - x[1])) * y[2]
xx = input()
xx = float(xx)
print(f(xx))
当n不定时,将代码普式化有(n自定义输入)
Code
#拉格朗日插值公式
x = []
y = []
n = input()
n = int(n)
for i in range(n) :
v = input()
v = int(v)
x.append(v)
for i in range(n) :
v = input()
v = int(v)
y.append(v)
def f(X) :
sum = 0