Я использую IPython (дистрибутив Anaconda) с символьной математической библиотекой.
У меня есть такое выражение:
t⋅(h + l)
───────────────────────
l⋅(h + l⋅sin(θ))⋅cos(θ)
Я хотел бы изменить это, чтобы получить его в терминах (h/l)
и (t/l)
:
(t/l)⋅((h/l)+1)
─────────────────────
((h/l)+sin(θ))⋅cos(θ)
Это довольно легко сделать вручную; просто разделите обе части дроби на l
и переставьте.
До сих пор мне не везло со встроенными функциями sympy.
Я пробовал использовать expand
, за которым следует collect(expr,h/l)
, но это не меняет выражения. Я подозреваю, что это не сработает, потому что нет h/l
терминов, которые нужно было бы собирать.
Как мне добиться этого?
Код Python для первого выражения, чтобы сэкономить ваше время: t*(h + l)/(l*(h + l*sin(theta))*cos(theta))