maxframe.tensor.special.loggamma#
- maxframe.tensor.special.loggamma(z, out=None)[源代码]#
伽马函数对数的主分支。
定义为 \(x > 0\) 时的 \(\log(\Gamma(x))\),并通过解析延拓扩展到复平面。该函数在负实轴上有一个分支切割。
- 参数:
z (array_like) -- 要在其中计算
loggamma的复平面上的值out (ndarray, optional) -- 用于存储
loggamma计算结果的输出数组
- 返回:
loggamma -- 在 z 处的
loggamma值。- 返回类型:
scalar or ndarray
备注
通常来说,\(\log\Gamma(z) = \log(\Gamma(z))\) 并不成立,尽管这两个函数的实部是一致的。不将 loggamma 定义为 \(\log(\Gamma(z))\) 的好处在于后者的分支切割结构较为复杂,而 loggamma 除了在负实轴上之外是解析的。
恒等式
\[\begin{split}\exp(\log\Gamma(z)) &= \Gamma(z) \\ \log\Gamma(z + 1) &= \log(z) + \log\Gamma(z)\end{split}\]使得 loggamma 在复数对数空间中非常有用。
在实数轴上,loggamma 与 gammaln 之间的关系是
exp(loggamma(x + 0j)) = gammasgn(x)*exp(gammaln(x)),忽略舍入误差。这里的实现基于 [hare1997]。
引用
[hare1997]D.E.G. Hare, Computing the Principal Branch of log-Gamma, Journal of Algorithms, Volume 25, Issue 2, November 1997, pages 221-236.