首页 > 解决方案 > python sympy公分母到符号分数

问题描述

我想生成一个函数,它接收带有分数的表达式(如A/(p+1)+B/(p+2)),并返回公分母分数并将共同部分打包在分子中(如((A+B)p+2A+B)/((p+1)(p+2))[p取出作为公倍数])。

有一个together函数sumpy可以取公分母,但它不包含分子。

我怎样才能做到这一点?谢谢!

标签: pythonmathsympy

解决方案


调用后,together您可以使用fraction分隔分子和分母,然后您可以使用以下方法处理分子expand/collect

In [38]: A, B, p = symbols('A, B, p')

In [39]: A/(p+1)+B/(p+2)
Out[39]: 
  A       B  
───── + ─────
p + 1   p + 2

In [40]: e = A/(p+1)+B/(p+2)

In [41]: together(e)
Out[41]: 
A⋅(p + 2) + B⋅(p + 1)
─────────────────────
   (p + 1)⋅(p + 2)   

In [42]: fraction(together(e))
Out[42]: (A⋅(p + 2) + B⋅(p + 1), (p + 1)⋅(p + 2))

In [43]: n, d = fraction(together(e))

In [44]: n = collect(expand(n), p)

In [45]: n/d
Out[45]: 
2⋅A + B + p⋅(A + B)
───────────────────
  (p + 1)⋅(p + 2)  

推荐阅读