sympy 可以将分母中的 Heaviside 表达式积分吗?

问题描述 投票:0回答:1

我想做这样的事情:

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

它只是返回

Integral(1/(Heaviside(x) + 1), x)
未评估。

问题是

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

我尝试过 Heaviside(x,1) 但不起作用。

sympy symbolic-integration
1个回答
1
投票

我不认为问题是

Heaviside(0)
。只是 sympy 没有在集成例程中处理这种特殊情况的代码。您可以通过将 Heaviside 重写为分段来帮助解决这个问题:

In [36]: Integral(1/(Heaviside(x) + 1), x).rewrite(Piecewise).doit()
Out[36]: 
⎧x  for x < 0
⎪            
⎨x           
⎪─  otherwise
⎩2 
© www.soinside.com 2019 - 2024. All rights reserved.