我试图通过指定参数epsabs
来更精确地计算积分scipy.integrate.quad
,比如我们正在将函数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
错误吗?我应该做些什么来提高积分的精度?