Gamma 函数
贡献者: addis; spain
1 函数(gamma function)可以看成是阶乘在实数或复数域的拓展,该函数有多种定义方法,这里先讨论实数域上的定积分定义。该方法可以定义 区间的阶乘
即 函数在区间 被定义为
可以证明新定义的阶乘的递推关系仍为
且 。所以当 取正整数 时,
式 1 的结果仍然是熟悉的 。
另外能证明 ,由此我们可以直接写出半整数的阶乘为
1. 推导
首先当 时该积分在 处不收敛,以下仅讨论 为正实数的情况2。
我们现在验证当 取正整数时,新定义的阶乘 与原来的定义 相同。首先
使用分部积分法,令 为 “求导项”, 为 “积分项”,可得递推公式3(式 3 )
由递推
式 6 和初值
式 5 ,对任意正整数 有
再来看半整数的阶乘,我们讨论范围内的最小半整数的阶乘为
其中使用了换元法令 将定积分变为
高斯积分。
2. 渐近公式
对于大的 , 有斯特林公式(Stirling formula):
这是一个渐近展开,右边的级数是发散的。它的推导可见拉普拉斯方法
Matlab 代码
Matlab 中的默认 gamma(x)
函数接受一个实数 double 类型 x
,但如果你安装了符号工具箱 Matlab 符号计算和变精度计算,可以用 gamma(vpa(x))
。
代码 1:gamma_sym.m
1. ^ 参考 Wikipedia 相关页面 以及 [1] 相关章节。
2. ^ 事实上,自变量为负实数(非整数)时, 函数有另一种定义,这里不讨论。
3. ^ 该证明仅对 适用,这样才有 ,使第四个等号成立。
[1] ^ Arfken, Weber, Harris. Mathematical Methods for Physicists - A Comprehensive Guide 7ed