quad を使用して、ガウス分布の平均を取得したいと考えています。最初の試行と 2 回目の試行で異なる結果が得られます。そして、quad の 2 回目の試行では、1 つのサブディビジョンのみを使用します。
mu =1
sigma =2
import scipy as sp
import scipy.integrate as si
import scipy.stats as ss
f = lambda x: x * ss.norm(loc=mu, scale=sigma).pdf(x)
a = si.quad(f, -999., 1001., full_output=True)
print a[0]
#print sum(a[2]["rlist"][:a[2]["last"]])
print a[2]["last"]
b = si.quad(f, -1001., 1001., full_output=True)
print b[0]
#print sum(b[2]["rlist"][:b[2]["last"]])
print b[2]["last"]
print sorted(a[2]["alist"][:a[2]["last"]])
print sorted(b[2]["alist"][:b[2]["last"]])
出力は次のとおりです。
1.0
16
0.0
1
[-999.0, -499.0, -249.0, -124.0, -61.5, -30.25, -14.625, -6.8125, 1.0, 8.8125, 16.625, 32.25, 63.5, 126.0, 251.0, 501.0]
[-1001.0]
私は間違いを犯しますか?