2015-09-21 47 views
0

我如何問sympy因子x ** 2 - 3/2 * x + 1/2到(x-1)*(x-1/2)? 我已經得到最接近的是:因子分解在sympy

>>> (x**2 - Rational(3/2)*x + Rational(1/2)).factor() 
(x - 1)*(2*x - 1)/2 

回答

1

一個簡單的方法:

In [1]: expr = (x**2 - Rational(3/2)*x + Rational(1/2)) 

In [2]: expr 
Out[2]: 
2 3*x 1 
x - --- + - 
     2 2 

In [3]: fe = factor(expr) 

In [4]: fe 
Out[4]: 
(x - 1)*(2*x - 1) 
----------------- 
     2   

In [5]: fe.args 
Out[5]: (1/2, x - 1, 2*x - 1) 

In [6]: fe.args[0]*fe.args[2]*fe.args[1] 
Out[6]: (x - 1)*(x - 1/2) 

也就是說,你因子表達的[3],然後拿到產品參數[5] ,並將其乘以[6]。在步驟[6]中的乘法調用一些評估例程,其稍微簡化了表達式,但不涉及擴展它的點。