def horner(x,coeffs):
result = 0
deriv = 0
for a in coeffs:
result = x*result+a
deriv = x*deriv+result
return result,deriv
这就是我所拥有的。但是衍生物的价值是不正确的,我不知道为什么......
答案 0 :(得分:1)
你的代码是正确的,只需要将结果和派生行轮换,因为在你的第一个派生值中你想要使用你的结果= 0来得到正确的答案:)
答案 1 :(得分:0)
我使用此功能进行区分:
def differenciate(coefficients):
return [c * (len(coefficients) - i) for i, c in enumerate(coefficients[:-1])]
此函数用于评估polinomial:
def call(coefficients, x):
return sum(x ** (len(coefficients) - i - 1) * c for i, c in enumerate(coefficients))
可能无需在一个功能中同时执行这两项操作。你可以做到
call(differenciate([1, 2, 3, 4]), 4)