如何替换表达式并进行计算? Sympy

时间:2019-12-10 11:10:29

标签: python sympy

我在Sympy上具有符号功能,并且涉及到它很长的表达。例如:

from sympy.abc import x
from sympy import Function
F = Function('F')(x) 
exp = diff(F,x,x).subs(F, x**3+x) + F**2

现在,我想用特定的表达式代替函数F,并对其求值,例如:

exp.subs(F,x*4)
>>>x**8 + Derivative(x**4, (x, 2))

但是,我希望它返回x**8+12*x**2,因为这是两次区分x**4时得到的结果。我该怎么办?

谢谢, 爱德华多

1 个答案:

答案 0 :(得分:2)

当替换后需要执行某些操作时,您只需“执行”即可:

>>> F = Function('F')(x)
>>> exp = diff(F,x,x).subs(F, x**3+x) + F**2
>>> exp.subs(F,x*4)
16*x**2 + Derivative(x**3 + x, (x, 2))
>>> _.doit()
16*x**2 + 6*x

(如果可以完成,那么就可以完成;但是有时-像积分一样-由于没有在SymPy中编程任何解决方案,它们将保持撤消状态。)