使用此代码段:
from sympy import *
init_printing(use_latex='mathjax')
a,b,c=symbols('a b c')
ratsimp(a+1/b+1/c)
我得到了
a + (b + c)/(b*c)
虽然我想得到
(a*b*c + b + c)/(b*c)
因为我需要分数的分子。
有可能吗?
这是截图,我得到Out[1]
,而我想获得Out[2]
:
答案 0 :(得分:2)
正如ratsimp
文档所述,其最后一步是 reduce 有理函数,即提取其多项式部分。由于这不是您想要的,因此不应使用ratsimp
。相反,使用cancel
将所有内容都放在共同的分母上,如果你想分别使用分子和分母,也可以使用.as_numer_denom()
>>> cancel(a+1/b+1/c)
(a*b*c + b + c)/(b*c)
>>> f, g = cancel(a+1/b+1/c).as_numer_denom()
>>> f
a*b*c + b + c
>>> g
b*c