我想这样做:
integrate(1/(1 + Heaviside(x)),x)
它只返回未求值的Integral(1/(Heaviside(x) + 1), x)
。
问题是Heaviside(0)
没有定义。例如,在Mathematica中,有UnitStep
函数,它与Heaviside
类似,只是UnitStep(0)
等于1。我能模仿一下吗?
我试过Heaviside(x,1),它不起作用。
我不认为问题出在Heaviside(0)
。只是sympy在集成例程中没有处理这种特殊情况的代码。您可以通过将Heaviside重写为Piecewise:
In [36]: Integral(1/(Heaviside(x) + 1), x).rewrite(Piecewise).doit()
Out[36]:
⎧x for x < 0
⎪
⎨x
⎪─ otherwise
⎩2