Я новичок в sympy, и у меня возникли проблемы с использованием collect() внутри тригонометрической функции. Я не использую упрощение () или тригсимп (), потому что мое реальное выражение более сложное, а они его чрезмерно упрощают. Я пытаюсь шаг за шагом упростить его до определенной формы. Почему collect(sin(xy+xz),x) не группирует x терминов? Спасибо.
x, y, z = symbols('x y z')
print(collect(sin(2*x + 3*x),x))
sin(5*x) #Works
print(collect(x*y + x*z, x))
x*(y + z) #Works
print(collect(sin(x*y+x*z),x))
sin(x*y + x*z) #Doesn’t work - Expected sin(x(y+z))
collect
предполагает, что ваше выражение является полиномом верхнего уровня. Вы можете использовать, например.factor_terms
для рекурсивного применения такого упрощения к подвыражениям. - person Oscar Benjamin   schedule 26.06.2021