Упростите симпатию.Кронекердельта


Есть ли способ "упростить" a sympy.KroneckerDelta? Например,

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

Можно было бы также выразить более просто как

sympy.KroneckerDelta(i, j)
1 2

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 не знает многого, если вообще что-либо, о специальных свойствах дельты Кронекера.