首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scipy.integrate.nquad无视选项?

scipy.integrate.nquad无视选项?
EN

Stack Overflow用户
提问于 2022-02-14 14:07:47
回答 1查看 81关注 0票数 2

我需要计算一个数值(三重)积分,但是不需要很高的数值精度,因此当使用nquad时,我想牺牲一些精度来提高速度。我认为我可以通过增加epsrel和/或epsabs选项来做到这一点,但它们似乎没有任何效果。例如(注意,这只是一个例integrand -我实际上不需要计算这个特殊的积分.):

代码语言:javascript
复制
import numpy as np
from scipy.integrate import nquad

def integrand(l, b, d, sigma=250):
    x = d * np.cos(l) * np.cos(b)
    y = d * np.sin(l) * np.cos(b)
    z = d * np.sin(b)
    return np.exp(-0.5 * z**2 / sigma**2) / np.sqrt(2*np.pi * sigma**2)

ranges = [
    (0, 2*np.pi),
    (0.5, np.pi/2),
    (0, 1000.)
]

# No specification of `opts` - use the default epsrel and epsabs:
result1 = nquad(integrand, ranges=ranges, full_output=True)

# Set some `quad` opts:
result2 = nquad(integrand, ranges=ranges, full_output=True,
                opts=dict(epsabs=1e-1, epsrel=0, limit=3))

这两项产出是相同的:

代码语言:javascript
复制
>>> print(result1)
(4.252394424844468, 1.525272379143154e-12, {'neval': 9261})
>>> print(result2)
(4.252394424844468, 1.525272379143154e-12, {'neval': 9261})

这里包含了一个完整的示例:https://gist.github.com/adrn/b9aa92c236df011dbcdc131aa94ed9f9

这不是正确的方法吗,还是scipy.integrate忽略了我输入的opts

EN

回答 1

Stack Overflow用户

发布于 2022-02-21 15:34:42

scipy.integrate.nquad中可以看出,opts只能传递给quad,如下所示:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.nquad.html

应用实例:

代码语言:javascript
复制
import numpy as np
from scipy.integrate import quad

def integrand(a, sigma=250):
    x = 2 * np.sin(a) * np.cos(a)
    return x


# No specification of `opts` - use the default epsrel and epsabs:
result1 = quad(integrand,0, 2*np.pi)

# Set some `quad` opts:
result2 = quad(integrand,0, 4*np.pi,epsabs=1e-6, epsrel=1e-6, limit=40)

返回:

代码语言:javascript
复制
result1: (-1.3690011097614755e-16, 4.4205541621600365e-14)
result2: (-1.7062635631484713e-15, 9.096805257467047e-14)

nquad之所以不抱怨选项的存在,是因为nquad包含了quaddbquadtplquad

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71113208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档