有了这个片段:

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] :

python - 在 sympy 中,ratsimp 是否也可以简化非分数元素?-LMLPHP

最佳答案

正如 ratsimp 文档所说,它的最后一步是减少有理函数,即提取其多项式部分。由于这不是您想要的,您不应该使用 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

关于python - 在 sympy 中,ratsimp 是否也可以简化非分数元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36236960/

10-15 08:49