我正在使用 IPython(Anaconda 发行版)和 sympy 符号数学库。
我有以下表达式:
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))