添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • ln 结尾的函数的确是取自然对数,但它们要先取绝对值。
  • 包含 inc 的函数计算的是 正则化 不完全函数(regularized incomplete functions),而不是简单的不完全函数。
  • 这些要点将在下面阐明。

    Gamma 和 beta 函数

    在 SciPy 中 gamma 函数 $\Gamma (z)$ 和 beta 函数 $B(x, y)$ 毫不意外地被称为 gamma beta gamma(z) 计算:

    $$\Gamma (z) = \int_0^{\infty} t^{z-1}e^{-t} dt$$

    beta(x, y) 计算:

    $$B(x, y ) = \int_0^1 t^{x-1}(1-t)^{y-1}dt=\frac{\Gamma(x) \Gamma(y)}{\Gamma(x+y)}$$

    对数

    通常 gamma 和 beta 函数在实践中不如其对数形式有用(请参阅 这里 的解释)。这些对数形式在 SciPy 中被称为 gammaln betaln 。 注意 gammaln 实际上返回的是 gamma 函数 绝对值 的自然对数,即 gammaln(z) 计算 $log|\Gamma(z)|$ 。而 betaln(x, y) 计算 $log|B(x, y)|$

    Psi 和 polygamma 函数

    $\psi(z)$ 表示 $log(\Gamma(z))$ 的导数,在 SciPy 中被称为 psi 函数。 $\psi(z)$ 的第 n 个导数在 SciPy 中用 psi(n, z) 表示。

    不完全函数与互补函数

    gamma 和 beta 函数都有“不完全”版。但是,SciPy 的不完全伽马函数 gammainc 对应 正则化 伽玛函数。类似地,SciPy 的不完全 beta 函数 betainc 对应正则化 beta 函数。

    (下)不完全 gamma 函数由下式定义

    $$\gamma(a, z) = \int_0^z t^{a-1}e^{-t} dt$$

    上不完全 gamma 函数由下式定义

    $$\Gamma(a, z) = \int_z^{\infty} t^{a-1}e^{-t} dt$$

    之所以被称为“不完全”是因为它们在 gamma 函数定义域的一部分进行积分。不完全 beta 函数也遵循同样的模式。

    正则化的不完全 gamma 函数定义如下:

    $$P(a, z) = \frac{\gamma(a, z)}{\Gamma(a)}$$

    $$Q(a, z) = \frac{\Gamma(a, z)}{\Gamma(a)}$$

    SciPy 的函数 gammainc(a, z) 计算 P(a, z) ,函数 gammaincc 计算 Q(a, z) 。 注意 gammaincc 中额外的 c 代表“互补”。由于 Q(a, z) = 1 - P(a, z) ,所以似乎不需要同时提供 P(a, z) 及其互补函数 Q(a, z) 。但是,为了数值的精度,我们需要互补函数。请参阅 这里 的解释。这里同样适用于不完全伽马函数。

    不完全 beta 函数定义为

    $$B_x(a, b) = \int_0^x t^{a-1}(1-t)^{b-1} dt$$

    正则化不完全 beta 函数定义为

    $$I_x(a, b) = \frac{B_x(a, b)}{B(a, b)}$$

    SciPy 函数 betainc(a, b, c) 计算 $I_x(a, b)$

    反函数

    inv 结尾的 SciPy 函数计算相应函数的反函数。 gammaincinv(a, y) 返回使得 gammainc(a, x) = y x 。同样的, gammainccinv gammaincc 的反函数。 最后, betaincinv(a, b, y) 返回使得 betainc(a, b, x) = y x

    在 gamma 和 beta 函数的 SciPy 实现中存在不对称:没有 betaincc betainccinv 函数。由于 beta 函数的对称性,这些函数是不必要的。可以将 betaincc(a, b, x) 定义为 betainc(b, a, 1-x) ,将 betainccinv(a, b, x) 定义为 betaincinv(b, a, 1-x)

    本文翻译自: Gamma and related functions in SciPy