2016-08-24 75 views
0

我有一個列表,我試圖解決一個變量,但不工作,因爲我有inf列表中的一些元素。我怎樣才能處理值的inf,以便我可以解決我的變量m?當我運行它說的代號爲「無法轉換0爲int」,所以解決命令A.與列表中的inf處理

from sympy import * 
from numpy import inf 
m = var('m') 
A = [inf*m - 1, inf*m - 2, .1122*m - 7, 0.054*m - 8] 
m = [solve(eq,m) for eq in A] 

回答

0

的列表中有一個問題與INF值它通常不是一個好主意,混合sympynumpy。 Sympy使用oo作爲無窮大。您可以使用.subsinfoo取代:

from sympy import * 
from numpy import inf 
m = var('m') 
A = [inf*m - 1, inf*m - 2, .1122*m - 7, 0.054*m - 8] 
sol = [solve(eq.subs(inf, oo), m) for eq in A] 

sol[[nan], [nan], [62.3885918003565], [148.148148148148]]

+0

其實名單的是,我沒有包括簡單函數的輸出。 A的列表中有我最初發布的inf,所以有什麼方法可以在inf參與時獲得nan? –

+0

包含儘可能接近實際問題的代碼總是一個好主意。我改變了代碼來替代'oo'的'inf',但我仍然建議解決這個問題的最好方法是避免混合'numpy'和'sympy'(所以要改變返回這個列表的函數使用'oo'而不是'inf')。 – chthonicdaemon