我想知道如何让Sympy将分数扩展为多项式。例如,请考虑以下代码
from sympy import *
var('x a b c d e')
Eq(a, ()/())
frac = Eq(a, (x + b/x)/(c/x + d/x**2))
pprint(frac)
如何在x中得到多项式?在这种情况下,例如,多项式看起来像
C1*x**3 + C2*x**2 + C3*x + C4 = 0
我.as_poly()
,as_powers_dict()
,expand()
以及其他一些人,但我几乎猜到了这个名字,并尝试了一切似乎遥不可及的事情。有没有办法做到这一点?
干杯
答案 0 :(得分:2)
我不知道这种方法有多普遍,但在某些情况下这样的事情可能会有用:
In [299]: frac = Eq(a, (x + b/x)/(c/x + d/x**2))
In [300]: f = factor(frac.lhs - frac.rhs)
In [301]: f
Out[301]: -(-a*c*x - a*d + b*x + x**3)/(c*x + d)
In [302]: f *= denom(f)
In [303]: poly(f, x)
Out[303]: Poly(-x**3 + (a*c - b)*x + a*d, x, domain='ZZ[a,b,c,d]')
In [304]: poly(f, x).as_dict()
Out[304]: {(0,): a*d, (1,): a*c - b, (3,): -1}