确定多项式函数的系数

时间:2015-12-23 12:15:19

标签: python

我编写以下代码时遇到了困难:

高阶衍生品。 a)给定n€N,x0,a0,a1,...一个带有!= 0的€R,写一个确定的程序

的唯一多项式函数P的系数A0,A1,... .An

满足条件 P(x0)= a0,P'(x0)= a1,...... .P(n)(x0)= an。

我非常了解数学部分,但我坚持编码部分。请帮忙!

2 个答案:

答案 0 :(得分:1)

也许这会奏效:

def poly(x0,*a):
    assert len(*a) > 0
    if len(*a) == 1:
        return [a[0]]
    return [a[0]] + [(j+1)*c for j, c in enumerate(poly(x0, *a[1:])]

它的作用是将问题抛回到类似的问题中。您可以通过一个系数较小的系数(系数a1 ... aN)来确定函数的导数。只有一个系数的情况专门用于结束递归公式。

[(j+1)*c for j, c in enumerate(poly(x0, *a[1:])]构造将每个系数乘以一个多于它的索引,这意味着取多项式的反导数。

答案 1 :(得分:1)

现在我设法写了一些代码来确定给定程度的一阶导数。例如,如果n = 2,则比P'(x0)= a1 + 2 * a2 * x0 ** 1 - 一阶导数,但我无法从这里计算出应该为的二阶导数:P''(x0)= 2 * A2。 所以这是我目前的代码:

def deriv(d1,n):     对于范围内的i(1,n + 1):         s + = a [i] * i * x0 **(i-1)         d1 = s     返回d1

现在我知道我需要调用函数deriv(d1),但我不知道如何。我欢迎任何答案或建议