我编写以下代码时遇到了困难:
高阶衍生品。 a)给定n€N,x0,a0,a1,...一个带有!= 0的€R,写一个确定的程序
满足条件 P(x0)= a0,P'(x0)= a1,...... .P(n)(x0)= an。
我非常了解数学部分,但我坚持编码部分。请帮忙!
答案 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),但我不知道如何。我欢迎任何答案或建议