2016-02-22 31 views
4

standard logistic function在下面的代碼編碼爲sigmaSympy整合不會得到正確的答案

from sympy import * 
x, sigma = symbols("x sigma") 
sigma = 1/(1 + exp(-x)) 
plot(sigma); 

logistic function

當您嘗試計算負x曲線下方的區域:

integrate(sigma,(x, -oo, 0)) # This gives NaN 

如果您需要正確的答案,您需要計算以下限制,即給出012它必須是。

t = symbols("t") 
limit(integrate(sigma, (x, -t, 0)), t, oo) # log(2) 

爲什麼SymPy沒有正確整合西格瑪?

+1

您使用的是什麼版本的sympy?使用0.7.4.1我使用這兩個片段得到'log(2)'。 – wflynny

+0

版本:0.7.6.1,我正在使用Jupyter –

+1

它看起來[live.sympy.org](http://live.sympy.org)中sympy的版本遭受同樣的問題。 – wflynny

回答

1

這看起來像一個已在SymPy開發分支中修復的bug(將在即將發佈的SymPy 1.0中修復)。

In [31]: sigma = 1/(1 + exp(-x)) 

In [32]: integrate(sigma,(x, -oo, 0)) 
Out[32]: log(2)