为什么 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。
这个函数从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。