【问题标题】:Sympy integrate does not give the right answerSympy 集成没有给出正确答案
【发布时间】:2016-02-25 03:40:47
【问题描述】:

standard logistic function 在以下代码中编码为sigma

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

当您尝试计算负x 曲线下方的面积时:

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

如果您需要正确的答案,您需要计算以下限制,它必须是log(2)

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

为什么SymPy没有正确整合sigma?

【问题讨论】:

  • 您使用的是什么版本的 sympy?使用 0.7.4.1 我得到 log(2) 使用两个 sn-ps。
  • live.sympy.org 的 sympy 版本似乎遇到了同样的问题。
  • 对我来说似乎是自 2014 年 1 月以来在某处引入的错误...您可能想在他们的 issue tracker 上发帖并参考这篇文章。
  • 顺便在开发分支解决了。

标签: python sympy


【解决方案1】:

这看起来像是一个已经在 SymPy 开发分支中修复的错误(将在 SymPy 1.0 中修复,即将发布)。

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

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

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 2019-03-07
    • 2019-10-28
    相关资源
    最近更新 更多