下面的代码接受一个值x和一个点列表x,并通过给定x值处的点列表来确定Lagrange多项式的值。def chunkIt(seq, num):
avg = len(seq) / float(num)
out = []
last = 0.0
while last < len(seq):
out.append(seq[int(last):int(last + avg)])
last += avg
return out
def product(list):
p = 1
for i in list:
p *= i
return p
def Lagrange(x,X):
T = np.zeros((2,len(X)))
list = []
for i in range(len(X)):
for j in range(len(X)):
if i != j:
list.append((x-X[j][0])/(X[i][0]-X[j][0]))
p = []
for i in chunkIt(list,len(X)):
p.append(product(i))
for i in range(len(X)):
T[0][i] = p[i]
T[1][i] = X[i][1]
list2 = []
for i in range(len(X)):
list2.append(T[0][i]*T[1][i])
return sum(list2)
例如:x, X = 3, [[0,0],[1,1],[2,0.5]]
给出的值为-1.5。
如何修改此代码以通过点列表确定多项式方程?i、 e.如果我把x = 'x'作为输入,我希望它返回-0.75x**2 + 1.75x[对于给定的示例]