2013-11-26 105 views
2

我一直在尋找一個位的值,我在,我相信我可以要求Google錯誤的問題點。如果還有其他線程存在此問題,請告訴我。sympy - 使用「解決()」找到分母

我是比較新的sympy,但文檔是很不錯的,所以我沒有任何問題迄今。我想從MATLAB轉換爲Python,我正在測試一些在MATLAB中工作的腳本。我正在使用Python 3.3。

我試圖解決一個相對簡單的平等,我失敗了。當我運行下面的腳本時,我只收到一個空列表作爲輸出。

# define the symbols we wish to use 
se = symbols('se') 

# assign some constants 
D = S(0.24) 
sn = S(38e6) 
Q = S(0.64) 

Dprime = 1.0 - D 

mc = 1 + (se/sn) 

# this is the expression that we wish to make equal to Q 
expr = (S(1)/(pi * (mc * Dprime - S(0.5)))) 

# this should print the value for se 
print(solve(Eq(expr, Q),se)) 

這段代碼完全正確地工作,直到執行「solve」函數。

>>> Eq(expr, Q) 
      1     
──────────────────── = 0.64 
π⋅(2.0e-8⋅se + 0.26) 

我看過文檔,我發現有幾個標誌可以使用。我第一次嘗試了我認爲可能相關的那些。然後我嘗試了我認爲不相關的那些。然後我嘗試了所有。

我也曾嘗試對輸入變量的各種操作。我留下的其中一個是S(),我知道它是「symplify」函數。也許我超過了這一點,但我懷疑不能過度使用這個功能。

這個問題似乎涉及到其在分母中的變量。我已經嘗試了許多sympy文檔中包含的示例,並且它們都適用於我,所以我對安裝本身非常有信心。

謝謝您的時間,

Ĵ

回答

1

當然,同時尋找答案,我碰到了一下就有關使用,而不是爲這個「sympy」 SciPy的「。碰巧,只需放置一個from scipy import *即可解決問題。

1

你想要的標誌是rational=False。我認爲這是SymPy中的一個錯誤,但可能你的係數2.0e-8太小了。

+0

我爲此打開了https://code.google.com/p/sympy/issues/detail?id=4112。 – asmeurer

+0

它看起來像這個問題已被修復。它應該在SymPy的下一個版本中更好地工作。 – asmeurer