2017-02-11 1 views
1

Sympy가 분수를 갖는 방정식을 다항식으로 확장하는 방법을 궁금합니다. 예를 들어, 다음 코드를 고려하십시오.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 

같이 보일 것 I했습니다 .as_poly(), as_powers_dict(), expand() 및 몇몇 다른 사람하지만 난 꽤 많이 이름으로 추측하고 원격으로 가능한 것 모든 것을 시도하고있다. 그렇게 할 수있는 방법이 있습니까?

건배

답변

1

나는이 방법이 얼마나 일반 모르겠지만,이 같은 일부 경우에 유용 할 수 있습니다 :

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} 
관련 문제