Основываясь на ваших попытках, можно получить один простой способ получить полином:
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