Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,通过积分计算高斯分布的面积_Python_Gaussian - Fatal编程技术网

Python,通过积分计算高斯分布的面积

Python,通过积分计算高斯分布的面积,python,gaussian,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)) 与一般公式比较 Nx | mu,sigma,n:=n/sigma*sqrt2*pi*exp-x-mu^2/2*sigma^2 i、 en=ma

我有一个函数,一个高斯函数,我把它拟合到数据文件中的数据中。我现在需要积分高斯函数,得到它下面的面积

这是我的高斯函数

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))
与一般公式比较

Nx | mu,sigma,n:=n/sigma*sqrt2*pi*exp-x-mu^2/2*sigma^2

i、 en=max_y,MU=max_x,x=theta

这是另一页上给出的内容:

如果Phiz=积分nx | 0,1,1,-inf,z;也就是说,Phiz是标准正态分布的积分,从>负无穷大到z,那么通过误差函数的定义,它是真的 Phiz=0.5+0.5*erfz/sqrt2

同样,如果Phiz | mu,sigma,n=积分Nx | sigma,mu,n, -inf,z;也就是说,Phiz | mu,sigma,n是正态分布的积分,给定参数mu,sigma,n从负无穷大开始 对于z,那么根据误差函数的定义,它是真的

Phiz | mu,sigma,n=n/2*1+erfx-mu/sigma* sqrt2

我不确定这有什么帮助??我只想把函数积分到曲线下的标绘值上。是不是说这是积分:

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

这里的答案是不定积分。如果你想得到两个x极限之间的数值结果,你可以在两个点上计算该函数并取其差

你的高斯函数是在所有实数上定义的−∞, +∞ 但在实践中,你只对中间部分感兴趣,因为尾部非常接近0。要获得总面积的数值估计,您可以按照您所说的做:在高斯峰每侧适当接近0的两点处计算误差函数,并取差值

如果Phiz | mu,sigma,n返回一个函数,您可以执行以下操作:

integral = Phi(z | mu, sigma, n)
area = integral(X_HIGH) - integral(X_LOW)

很不清楚你想要什么。如果你想得到高斯分布下的面积,即| R上的积分,这是Phiinf。由于erfinf=1,结果是n/2*sqrt2/sigma,在一维情况下为1/sigma sqrt2。要计算不定积分,可以使用数学模块中的erf实现。谢谢,仍然不确定要使用的正确代码。我可以使用曲线的2个最小值吗?i、 e.曲线开始上升的位置和下降的位置?我将如何更改上面的代码以合并此代码?谢谢你的回复!高斯分布没有最小值。高斯分布下的面积只取决于sigma和你的前置因子。也许最小值不是正确的术语,我的意思是,它在上升之前的平坦位置,以及下降之后的平坦位置。将有两个x值。@user3009100它从来不是真正平坦的,它只是趋于0,变得越来越平坦。是的,您可以使用这些值。filmor指的是高斯分布的面积有一个精确的值,这在我的头顶上是不知道的!再次感谢。请你给我一个代码的例子,我可以用它来计算两点之间的函数。