Python,通过积分计算高斯区域

时间:2013-11-19 14:16:43

标签: python gaussian

我有一个函数,一个高斯函数,我已经将它与数据文件中的数据相匹配。我现在需要集成高斯函数来给出它下面的区域。

这是我的高斯函数

def I(theta,max_x,max_y,sigma):
    return (max_y/(sigma*(math.sqrt(2*pi))))*np.exp(-((theta-max_x)**2)/(2*sigma**2))

与一般公式比较

  

N(x | mu,sigma,n):=(n /(sigma * sqrt(2 * pi)))* exp(( - (x-mu)^ 2)/(2 * sigma ^ 2) )

,即n = max_y,MU = max_x,x = theta

这是另一页上的内容:

  

如果Phi(z)=积分(N(x | 0,1,1), - inf,z);也就是说,Phi(z)是从>负无穷大到z的标准正态分布的积分,那么通过误差函数的定义它是真的   Phi(z)= 0.5 + 0.5 * erf(z / sqrt(2))。

     

同样,如果Phi(z | mu,sigma,n)=积分(N(x | sigma,mu,n),   -inf,z);也就是说,Phi(z | mu,sigma,n)是正负分布的积分,给定参数mu,sigma和n从负无穷大起   对于z,那么错误函数的定义

就是这样      

Phi(z | mu,sigma,n)=(n / 2)*(1 + erf((x-mu)/(sigma *)   SQRT(2))))。

我不确定这有什么帮助?我只想将我的函数整合到曲线下的绘制值上。是说这是不可或缺的:

Phi(z | mu, sigma, n) = (n/2) * (1 + erf((x - mu) / (sigma * sqrt(2))))

1 个答案:

答案 0 :(得分:0)

你的答案是无限积分。如果您想要两个x限制之间的数字答案,您可以在两个点评估该函数并获取差异。

您的高斯函数是在所有实数(-∞,+∞)上定义的,但实际上,您只对中间部分感兴趣,因为尾部非常接近0。你可以做的总面积的数值估计:在高斯峰的每一边的两个点上评估误差函数,并且取差值。

如果Phi(z | mu, sigma, n)返回您可以执行的功能:

integral = Phi(z | mu, sigma, n)
area = integral(X_HIGH) - integral(X_LOW)
相关问题