【发布时间】:2021-05-04 23:32:39
【问题描述】:
我试图通过为scipy.integrate.quad 指定参数epsabs 来更精确地计算积分,假设我们将函数 sin(x) / x^2 从 1e-16 集成到1.0
from scipy.integrate import quad
import numpy
integrand = lambda x: numpy.sin(x) / x ** 2
integral = quad(integrand, 1e-16, 1.0)
这给了我们
(36.760078801255595, 0.01091187908038005)
为了使结果更精确,我们通过epsabs指定绝对容错
from scipy.integrate import quad
import numpy
integrand = lambda x: numpy.sin(x) / x ** 2
integral = quad(integrand, 1e-16, 1.0, epsabs = 1e-4)
结果一模一样,误差还是0.0109那么大!我是否理解参数epsabs 错误?为了提高积分的精度,我应该做些什么不同的事情?
【问题讨论】:
标签: python scipy precision integrate quad