有没有一种方法可以“简化” sympy.KroneckerDelta
?例如,
i, j = sympy.symbols('i j')
sympy.KroneckerDelta((i+1)/2, (j+1)/2)
也可以更简单地表达为
sympy.KroneckerDelta(i, j)
答案 0 :(得分:1)
有一个内部函数_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))
打印KroneckerDelta(i, j)
。备注:
_simplify_delta
仅适用于KroneckerDelta
的单个实例,不适用于包含增量的表达式。simplify
不使用它:通用simplify
对Kronecker delta的特殊属性不了解(如果有的话)。