如何通俗的理解伽马(gamma)函数

如题所述

第1个回答  2023-09-17

通俗的理解伽马(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)为零!)两者都是对非整数的阶乘分解的有效解析延续。

相似回答