我想计算x值的多项式。我试着写 一个函数,它将整数和整数x的数组作为参数 该函数将返回x中多项式的值。
def pol(L, x):
P = None
for i in L:
P = L[0] * (x ** 0) + L[1] * (x ** 1) + L[2] * (x ** 2)
return P
L = [0, 2, 4]
x = 3
print(pol(L, x))
我也试过
def pol(L, x):
P = None
for i in L:
j = 0
P = sum(i * (x ** j))
j += 0
return P
L = [0, 2, 4]
x = 3
print(pol(L, x))
此示例将返回42。 我不知道如何增加。 感谢
答案 0 :(得分:2)
根据您的尝试,获得多项式的一种简单方法如下:
def poly(p, x):
val = 0
for i, pp in enumerate(p):
val += pp * x**i
return val
但是,有更快,更优雅的方法来做到这一点。我强烈建议您使用numpy.polyval()
来提高效率。
请注意,对于numpy
实施,p[0]
是最高阶多项式,而对于此处显示的示例,p[0]
是最低阶数!
p = [0, 2, 4]
x = 3
poly(p, x)
>> 42
import numpy as np
poly(p, x) == np.polyval(p[::-1], x)
>> True