【问题标题】:Simplification of Dirac delta in xδ(x)xδ(x) 中狄拉克三角洲的化简
【发布时间】:2018-01-23 13:31:42
【问题描述】:

我无法让sympyxδ(x) 简化为0,其中δ 是DiracDelta。

In : simplify(x*DiracDelta(x))
Out: x⋅δ(x)

是否有另一个简化例程可以在其参数的零点处评估狄拉克函数的因子项并检查它们是否消失?

这在构造分段函数时很有用,例如 f(x)= x H(x)(其中 H 是 Heaviside 函数),其导数应该是 H(x),但在 sympy 中是 x⋅δ(x) + Heaviside(x)。 Mathematica 确实将xδ(x) 简化为 0。

【问题讨论】:

    标签: python sympy symbolic-math simplification


    【解决方案1】:

    您可以通过积分然后微分将x*DiracDelta(x) 按摩成0,因为integrate 了解正在发生的事情并返回0。

    >>> (x*DiracDelta(x)).integrate(x).diff(x)
    0
    

    然而,这并不能解决最初的问题,而且无论如何这不是它应该如何工作的。 I raised an issue

    【讨论】:

    • 感谢您向 sympy 开发人员提出问题。
    • 我应该补充一点,这并不能解决 OP 中的问题,因为(Heaviside(x)*x).diff(x).integrate(x).diff(x) 仍然很自然地给出x⋅δ(x) + Heaviside(x)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 2021-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多