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
我想做这样的事情:
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