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

参见

gammaln

伽马函数绝对值的对数

gammasgn

伽马函数的符号

备注

通常来说,\(\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 在复数对数空间中非常有用。

在实数轴上,loggammagammaln 之间的关系是 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.