我想计算 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。 我不知道如何增加。 谢谢
最佳答案
根据您的尝试,获得多项式的一种直接方法如下:
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
关于python - 计算多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50375769/