为什么 integrate.quad(lambda x: x*exp(-x**2/2)/sqrt(2*pi), 0.0, 100000) 给出 0?

Why does integrate.quad(lambda x: x*exp(-x**2/2)/sqrt(2*pi), 0.0, 100000) give 0?

这个函数从0到inf都是正的,为什么给大于1000会yield为0,不合理。

import scipy.integrate as integrate
from math import *

integrate.quad(lambda x: x*exp(-x**2/2)/sqrt(2*pi), 0.0, 1000)
Out[52]: 
(0.3989422804014328, 1.6471510195390376e-11)
integrate.quad(lambda x: x*exp(-x**2/2)/sqrt(2*pi), 0.0, 100000)
Out[54]: 
(0.0, 0.0)

x 大于约。 39, exp(-x**2/2) 给出 0.0。当积分上限为 100000 时,函数非零的积分区间分数非常小,以至于 quad 算法永远看不到它。就quad而言,函数相同为0。