當前位置:編程學習大全網 - 源碼下載 - 如何通俗的理解伽馬(gamma)函數

如何通俗的理解伽馬(gamma)函數

通俗的理解伽馬(gamma)函數,具體如下:

我為什麽要在乎garmma分布?

使用伽馬函數定義了許多概率分布,例如伽馬分布,Beta分布,狄利克雷分布,卡方分布和學生t分布等。對於數據科學家,機器學習工程師,研究人員來說,伽馬函數可能是壹種最廣泛使用的函數,因為它已在許多分布中使用。

然後將這些分布用於貝葉斯推理,隨機過程(例如排隊模型),生成統計模型(例如潛在狄利克雷分配)和變分推理。因此,如果您很好地了解了Garmma函數,您將對其中出現的許多應用程序有更好的了解!

1、為什麽需要伽瑪函數?

因為我們要泛化階乘!

階乘函數僅針對離散點(對於正整數-上圖中的黑點)定義,但是我們希望連接黑點。我們想將階乘函數擴展到所有復數。階乘的簡單公式x!=1*2…x,不能直接用於小數值,因為它僅在x是整數時才有效。因此,數學家壹直在尋找...“什麽樣的function將這些點平滑地連接起來,並為我們提供所有實際值的階乘?”

但是,他們找不到可以表示x的和,乘積,冪,指數或對數的*有限*組合!直到…的實數。

2、歐拉發現了伽瑪函數。(在18世紀)

上面的公式用於找到z的任何實數值的Gamma函數的值。假設您要計算Γ(4.8)。您將如何解決上述整合?可以手動計算Γ(4.8)嗎?也許使用零件積分?

試試看,讓我知道您是否找到有趣的方式!對於我(以及到目前為止的許多其他人)而言,沒有快速簡便的方法手動評估分數的Gamma函數。好吧,那麽就不用分析了。您能否實現從0到無窮大的積分-以編程方式添加術語“無限次”?

您可以通過幾種方法來實現。最常用的兩種實現是斯特林近似和Lanczos近似。

[For implementation addicts:]For implementation addicts:the codes of Gamma function(mostly Lanczos approximation)in60+different language- C,C++,C#,python,java,etc.

讓我們計算Γ(4.8)使用計算機在已經實現的。

我們得到了17.837。正如我們所期望的,17.837介於3!(=Γ(4)=6)和4!(=Γ(5)=24)之間。(當z是自然數時,Γ(z)=(z-1)!我們將很快證明這壹點。)與只需要正整數的階乘不同,我們可以將任何實數/復數輸入z,包括負數。Gamma函數連接黑點,並很好地繪制曲線。

Confusion-buster:我們正在積分從0到無窮大的x(NOT z)。?x是正在集成的輔助變量。?我們沒有將4.8插入x。我們將4.8插入z。

3、Gamma函數如何對階乘函數進行插值?

如果看壹下Gamma函數,您會註意到兩件事。首先,相對於z,它絕對是壹個遞增函數。其次,當z是自然數時,Γ(z+1)=z!(我保證我們會盡快證明這壹點!)因此,我們可以期望Gamma函數連接階乘。Gamma函數如何以當前項x^ z和e^-x結束?我不確切知道歐拉的思維過程是什麽,但是他是發現自然數e的那個人,因此他必須做很多實驗,將e與其他函數相乘才能找到當前形式。

4、Gamma函數的圖形是什麽樣的?

當x變為無窮大∞時,第壹項(x^ z)也變為無窮大∞,但是第二項(e^-x)變為零。然後,伽瑪函數會收斂到有限值嗎?

我們可以使用L'H?pital規則嚴格證明它收斂。但是我們也可以毫不費力地看到它的融合。如果您考慮壹下,我們正在積分x^ z(壹個多項式遞增函數)和e^-x(壹個指數遞減函數)的乘積。因為e^-x的值下降快於x^ z的值,所以Gamma函數很可能收斂並具有有限的值。讓我們繪制每個圖形,因為眼見為實。x^ z* e^-x的圖讓我們看壹下Γ(4.8)的情況。

圖下綠色陰影區域從0到無窮大,Γ(4.8)=3.8!Python代碼用於生成上面的漂亮圖。自己繪制,看看z如何改變Gamma函數的形狀!

########################

#f(x)=exp(-x)graph#

########################

import matplotlib.pyplot as plt

import numpy as np

#Create x and y

x= np.linspace(-2,20,100)

y= np.exp(-x)

#Create the plot

fig,ax= plt.subplots()

plt.plot(x,y,label='f(x)=exp(-x)',linewidth=3,color='palegreen')

#Make the x=0,y=0thicker

ax.set_aspect('equal')

ax.grid(True,which='both')

ax.axhline(y=0,color='k')

ax.axvline(x=0,color='k')

#Add a title

plt.title('f(x)=exp(-x)',fontsize=20)

#Add X and y Label

plt.xlabel('x',fontsize=16)

plt.ylabel('f(x)',fontsize=16)

#Add a grid

plt.grid(alpha=.4,linestyle='--')

#Show the plot

plt.show()

####################

#f(x)=x^z graph#

####################

import matplotlib.pyplot as plt

import numpy as np

#Create x and y

x= np.linspace(0,2,100)

y1=x**1.3

y2=x**2.5

y3=x**3.8

#Create the plot

fig,ax= plt.subplots()

plt.plot(x,y1,label='f(x)=x^1.3',linewidth=3,color='palegreen')

plt.plot(x,y2,label='f(x)=x^2.5',linewidth=3,color='yellowgreen')

plt.plot(x,y3,label='f(x)=x^3.8',linewidth=3,color='olivedrab')

#Make the x=0,y=0thicker

ax.set_aspect('equal')

ax.grid(True,which='both')

ax.axhline(y=0,color='k')

ax.axvline(x=0,color='k')

#Add a title

plt.title('f(x)=x^z',fontsize=20)

#Add X and y Label

plt.xlabel('x',fontsize=16)

plt.ylabel('f(x)',fontsize=16)

#Add a grid

plt.grid(alpha=.4,linestyle='--')

#Add a Legend

plt.legend(bbox_to_anchor=(1,1),loc='best',borderaxespad=1,fontsize=12)

#Show the plot

plt.show()

###############################

#f(x)=x^(3.8)*e^(-x)graph#

###############################

import matplotlib.pyplot as plt

import numpy as np

#Create x and y

x= np.linspace(0,20,100)

y= x**3.8*np.exp(-x)

#Create the plot

fig,ax= plt.subplots()

plt.plot(x,y,label='f(x)=x^(3.8)*np.exp(-x)',linewidth=3,color='palegreen')

ax.fill_between(x,0,y,color='yellowgreen')

#Make the x=0,y=0thicker

ax.set_aspect('equal')

ax.grid(True,which='both')

ax.axhline(y=0,color='k')

ax.axvline(x=0,color='k')

#Add a title

plt.title('f(x)=x^(3.8)*e^(-x)',fontsize=20)

#Add X and y Label

plt.xlabel('x',fontsize=16)

plt.ylabel('f(x)',fontsize=16)

#Add a grid

plt.grid(alpha=.4,linestyle='--')

#Add a Legend

plt.legend(bbox_to_anchor=(1,1),loc='upper right',borderaxespad=1,fontsize=12)

#Show the plot

plt.show()

5、伽瑪函數屬性

如果您從這篇文章中刪除壹件事,應該是本節。

>給定z>1Γ(z)=(z-1)*Γ(z-1)或將其寫為Γ(z+1)=z*Γ(z)

讓我們使用部分集成和Gamma函數的定義來證明它。

如果n是壹個正整數C(n)=(n-1)!

什麽是Γ(1)?

因此,Γ(n)=(n-1)!

您可能還已經看到表達式Γ(n+1)=n!而不是Γ(n)=(n-1)!。這只是使右手邊n!,而不是(n-1)!我們所做的就是將n移1。

6、使用Gamma函數的屬性,顯示Gamma分布的PDF積分為1

快速回顧壹下Gamma“分布”(不是Gamma“函數”!):Gamma分布直覺和推導。證明如下:

問答:

1、伽瑪函數多大了?很老。大約300年。有趣的旁註:歐拉(Euler)在64歲時失明,但是在失明後他完成了近壹半作品。

2、壹些有趣的價值觀:C(1/2)=平方()許多有趣的方式來表明這壹點:Γ(1/2)=sqrt()Γ(-1)=Γ(-2)=Γ(-3)=infinity妳能證明這些嗎?3.這是快速查看Gamma函數圖的實數。

伽馬函數\Gamma(z)\Gamma(z)用藍色繪制,而\Gamma(z)\Gamma(z)+sin(πz)sin(πz)用綠色繪制。(請註意正整數處的交點,因為sin(πz)sin(πz)為零!)兩者都是對非整數的階乘分解的有效解析延續。

  • 上一篇:海報psd是什麽意思?什麽叫psd圖片
  • 下一篇:知識圖譜基礎(三)-schema的構建
  • copyright 2024編程學習大全網