【发布时间】:2015-05-10 18:33:25
【问题描述】:
使用最新版本的 sympy (0.7.6) 在确定支持 [0,y) 的函数的积分时,我得到以下错误结果:
from sympy import *
a,b,c,x,z = symbols("a,b,c,x,z",real = True)
y = Symbol("y",real=True,positive=True)
inner = Piecewise((0,(x>=y)|(x<0)|(b>c)),(a,True))
I = Integral(inner,(x,0,z))
Eq(I,I.doit())
这是不正确的,因为实际结果应该交换最后两种情况。这可以通过检查导数来确认:
Derivative(I.doit(),z).doit().simplify().subs(z,x)
处处减少为 0。
有趣的是,当通过替换 inner = Piecewise((0,(x>=y)|(x<0)),(a,True)) 来删除条件 (b>c) 时,我得到一个 TypeError:
TypeError: cannot determine truth value of
-oo < y
我是在错误地使用库还是这实际上是一个严重的 sympy 错误?
【问题讨论】: