简化sympy.KroneckerDelta

时间:2018-09-10 00:06:04

标签: sympy

有没有一种方法可以“简化” sympy.KroneckerDelta?例如,

i, j = sympy.symbols('i j')
sympy.KroneckerDelta((i+1)/2, (j+1)/2)

也可以更简单地表达为

sympy.KroneckerDelta(i, j)

1 个答案:

答案 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)。备注:

  1. _simplify_delta仅适用于KroneckerDelta的单个实例,不适用于包含增量的表达式。
  2. simplify不使用它:通用simplify对Kronecker delta的特殊属性不了解(如果有的话)。