我想定义一个包含函数导数的和,其中求和指数是导数阶。 简单的例子:
x, i = symbols("x i")
f = Function("f")(x)
Sum(diff(f,x,i), [i,1,3])
但是,这只返回一个零的总和。我认为这是因为它试图首先区分f wrt x,然后是wrt i。由于f不是i的函数,因此在处理之前它由Sum函数处理为。我想要发生的是
diff(f,x,1)
diff(f,x,2)
diff(f,x,3)
等
有没有办法让这项工作?
答案 0 :(得分:3)
sympy.diff(f,x,i)
是整数时, i
相当于f
'i
的阶导数。在你的情况下,它是一个符号。
使用内置sum()
以及生成器表达式:
>>> sum(diff(f,x,j) for j in range(1,4))
Derivative(f(x), x) + Derivative(f(x), x, x) + Derivative(f(x), x, x, x)