霍纳的方法是返回P(x)及其衍生物

时间:2015-03-05 20:06:11

标签: python python-2.7

def horner(x,coeffs):
    result = 0
    deriv = 0
    for a in coeffs:
        result = x*result+a
        deriv = x*deriv+result
    return result,deriv

这就是我所拥有的。但是衍生物的价值是不正确的,我不知道为什么......

2 个答案:

答案 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)

Used here