Sympy:衍生品和潜艇

时间:2016-11-15 14:39:04

标签: python python-3.x sympy

我有这段代码:

from sympy import *
x = Symbol("x")
f = Function("f")(x)
diff(3*x + 2, x) # == 3
diff(f, x).subs(f, 3*x + 2) # == Derivative(3*x + 2, x) <- Why not 3?

为什么sympy在用f代替x表达式时不评估表达式?

1 个答案:

答案 0 :(得分:5)

diff(f, x)无法推导出该函数,因此会产生抽象Derivative(f(x), x)。替换不进行任何评估,因此用f代替3*x + 2会导致Derivative(3*x + 2, x)。如果您想评估它,只需附加doit()

>>> diff(f, x).subs(f, 3*x + 2).doit()
3