scipy.special.
multigammaln#
- scipy.special.multigammaln(a, d)[来源]#
返回多元伽马函数的对数,有时也称为广义伽马函数。
- 参数:
- andarray
对 a 的每个元素计算多元伽马函数。
- dint
积分空间的维度。
- 返回值:
- resndarray
在给定点 a 处的多元伽马对数值。
注释
对于实数 a,维度为 d 的多元伽马函数的正式定义为
\[\Gamma_d(a) = \int_{A>0} e^{-tr(A)} |A|^{a - (d+1)/2} dA\]条件是 \(a > (d-1)/2\),且 \(A > 0\) 是所有维度为 d 的正定矩阵的集合。请注意,a 是一个标量:只有被积函数是多元的,自变量不是(该函数定义在实数集的一个子集上)。
这可以被证明等于下面这个更简洁的方程
\[\Gamma_d(a) = \pi^{d(d-1)/4} \prod_{i=1}^{d} \Gamma(a - (i-1)/2).\]参考文献
R. J. Muirhead,《多元统计理论的方面》(Aspects of multivariate statistical theory) (Wiley 概率论与数理统计系列)。
示例
>>> import numpy as np >>> from scipy.special import multigammaln, gammaln >>> a = 23.5 >>> d = 10 >>> multigammaln(a, d) 454.1488605074416
验证结果与上面所示方程的对数一致
>>> d*(d-1)/4*np.log(np.pi) + gammaln(a - 0.5*np.arange(0, d)).sum() 454.1488605074416