sympy 可以在分母中整合一个带有 Heaviside 的表达式吗?

Can sympy integrate an expression with Heaviside in the denominator?

我想做这样的事情:

integrate(1/(1 + Heaviside(x)),x)

只是 returns Integral(1/(Heaviside(x) + 1), x) 未计算。

问题是 Heaviside(0) 未定义。例如在 Mathematica 中,有一个 UnitStep 函数,它类似于 Heaviside,只是 UnitStep(0) 等于 1。我可以在 sympy 中模仿这个吗?

我试过 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