【发布时间】:2018-10-09 12:36:30
【问题描述】:
我正在尝试从任意点 gamma 计算高斯的积分,如下所示:
import numpy as np
from scipy.stats import norm
def func(mu, sigma, gamma):
x = np.linspace(mu-4*sigma, mu + 4*sigma, 100)
y = norm.pdf(x, mu, sigma)
area = y[x>=gamma].sum()
print(f"Area is ~ {area:.3f}")
plt.plot(x,y, label=f'μ0 = {mu}, σ={sigma}')
plt.fill_between(x[x>gamma],y[x>gamma], alpha=.5, label=f'area={area:.3f}')
plt.title("Example")
plt.legend(loc='best')
plt.show()
# Execute the function
func(0,10,-20)
输出是: 面积约为 1.211
蓝色区域是集成的,但它增加了不止一个(更多),即使它不是完整的功能。
我发现 this 相关但没有帮助。
为什么加起来不止一个?
【问题讨论】:
-
您的积分近似值不正确。每个被求和的项必须乘以
dx,即x样本的间距。试试area = y[x>=gamma].sum()*(x[1] - x[0]) -
谢谢! suach 一个新的错误 xD 我修复了它并发布为完整性的答案