После нескольких экспериментов мне лучше всего использовать пользовательские замены констант на основе их расширенного пути (см. Sympy doc на Epath )
formula = expand(simplify(EPath("/*/*/Integer").apply(formula, lambda x: Integer(1))))
formula = expand(simplify(EPath("/*/Integer").apply(formula, lambda x: Integer(1))))
formula = expand(simplify(EPath("/Integer").apply(formula, lambda x: Integer(1))))
Эти три строки в основном делаюттребуемое упрощение (например, x*y*x + y*x
-> x*y
).
Возможно, существуют более элегантные решения, но я публикую этот ответ, поскольку он может помочь другим людям.