Apply together
, которую можно вызывать как функцию together(expr)
или как метод expr.together()
.Если он применяется ко всему выражению, результат может быть слишком большим:
N1, N2, N3 = symbols('N1 N2 N3')
expr = N1*(-sqrt(15)/36 + S(5)/36) - 5*N2/18 + N3*(sqrt(15)/36 + S(5)/36)
print(together(expr))
print (N1*(-sqrt(15) + 5) - 10*N2 + N3*(sqrt(15) + 5))/36
.
Вот версия, которая выборочно применяет together
к коэффициенту каждого символа.
for sym in expr.free_symbols:
expr = expr.xreplace({expr.coeff(sym): together(expr.coeff(sym))})
print(expr)
печатает N1*(-sqrt(15) + 5)/36 - 5*N2/18 + N3*(sqrt(15) + 5)/36
.