SymPy 积分,常数项

SymPy integration, constant term

我无法理解 sympy.integrate() 函数的行为。最简单的例子,积分与微分:

t = sy.Symbol('t')
t1 = sy.Symbol('t1')
f = sy.Function('f')(t)
I = sy.integrate(f, (t, 0, t1))
f1 = I.diff(t1)
print f1

打印以下内容:

f(t1) + Integral(0, (t, 0, t1))

但我希望只看到 f(t)。调用 f1.simplify() 没有帮助。

为什么 sympy 不简化第二项?我该如何杀死它?

您可以调用 doit 方法:

>>> f1.doit()
f(t1)

我相信 SymPy 不愿意自动执行这些操作,因为它们的开销可能是任意的,而且没有通用的系统来预测它们的开销。但也许为 0 的积分添加一些试探法是明智的——我不知道。如果你有兴趣看到这个 "fixed" 你可能想考虑在 http://github.com/sympy/sympy/issues

为它打开一个问题