我正在尝试计算高斯分布在给定均值和标准差下两个界限之间的积分。
import numpy as np
import scipy
mu = 5
sigma = 30
lowerbound = 0.5
upperbound = np.inf
# generate Gaussian function
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100)
gauss = scipy.stats.norm.pdf(x, mu, sigma)
# integrate between bounds
integral = scipy.integrate.quad(gauss, lowerbound, upperbound)
这会引发一个ValueError: invalid callable given
,所以我做错了什么但我不知道是什么。
inf
,因此你可以使用生存函数方法s f
:integral = scipy.stats.norm.sf(lowerbound, mu, sigma)
。 - Warren Weckesser