【问题标题】:SciPy Quad Integration: Accuracy WarningSciPy Quad 集成:准确性警告
【发布时间】:2014-07-16 10:37:53
【问题描述】:

我目前正在尝试使用 scipy.integrate.quad 计算积分,对于某些值,我收到以下错误:

/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/scipy/integrate/quadrature.py:616: AccuracyWarning: divmax (20) 超出。最新差异 = 2.005732e-02 准确度警告)

查看文档,我并不完全清楚为什么会出现此警告、它的含义以及为什么它只针对某些值发生。

【问题讨论】:

  • 您能否展示生成警告的最简单代码版本?快速浏览一下最新的 scipy 源代码可以发现,scipy.integrate.romberg 可以发出警告,但scipy.integrate.quad 显然不会。

标签: python-2.7 scipy integrate


【解决方案1】:

scipy.integrate.quad 中有一个对差异函数的低级调用,该函数被迭代,并且它被迭代了divmax 次。在您的情况下,默认为 divmax=20。有一些函数可以覆盖这个默认值——例如scipy.integrate.quadrature.romberg 允许你将divmax(这里默认为10)设置为关键字。当差异函数的公差不满足时,将引发警告。将divmax 设置为更高的值会运行更长时间,并有望满足容差要求。

【讨论】:

    猜你喜欢
    • 2019-01-29
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多