簡體   English   中英

Python,通過積分計算高斯范圍內的面積

[英]Python, calculating the area inder a gaussian by integration

我有一個函數,高斯函數,我已經將此函數擬合到數據文件中的數據中。 現在,我需要集成高斯函數以給出其下方的區域。

這是我的高斯函數

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); 也就是說,在給定參數mu,sigma和n從負無窮大到z的情況下,Phi(z | mu,sigma,n)是正態分布的積分,那么根據誤差函數的定義

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))))

你得到的答案是不定積分 如果您希望得到兩個x極限之間的數值答案,則可以在兩個點上對該函數求值並求差。

高斯函數是在所有實數(-∞,+∞)上定義的,但實際上,您只對中間部分感興趣,因為尾部非常接近0。要獲得總面積的數值估計,您可以您說:在高斯峰的兩邊分別在接近0的兩個點處評估誤差函數,然后求出差。

如果Phi(z | mu, sigma, n)返回一個函數,則可以執行以下操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM