简化 sympy.KroneckerDelta

Mic*_*erz 5 sympy

有没有办法“简化” a sympy.KroneckerDelta?例如,

i, j = sympy.symbols('i j')
sympy.KroneckerDelta((i+1)/2, (j+1)/2)
Run Code Online (Sandbox Code Playgroud)

也可以更简单地表达为

sympy.KroneckerDelta(i, j)
Run Code Online (Sandbox Code Playgroud)

小智 3

有一个内部函数_simplify_delta可以执行此操作。

import sympy
from sympy.concrete.delta import _simplify_delta
i, j = sympy.symbols('i j')
expr = sympy.KroneckerDelta((i+1)/2, (j+1)/2)
print(_simplify_delta(expr))
Run Code Online (Sandbox Code Playgroud)

印刷KroneckerDelta(i, j)。评论:

  1. _simplify_delta仅适用于 的单个实例KroneckerDelta,不适用于涉及增量的表达式。
  2. 它不被使用simplify:泛型simplify对克罗内克三角洲的特殊性质了解不多(如果有的话)。