我有这段代码:
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
表达式时不评估表达式?
答案 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