scipy.special.digamma#

scipy.special.digamma(z, out=None) = <ufunc 'psi'>#

双伽马函数。

伽玛函数在 z 处求得的对数导数。

参数:
z类似数组

实数或复数自变量。

outndarray,可选

用于存储已计算 psi 值的数组。

返回:
digamma标量或 ndarray

计算出的 psi 值。

注释

对于不接近负实轴的大值,psi 通过 [1] 中的渐近数列 (5.11.2) 进行计算。对于不接近负实轴的小自变量,[1] 中的递推关系 (5.5.2) 被使用,直到自变量足够大以使用渐近数列。对于接近负实轴的值,先使用 [1] 中的反射公式 (5.5.4)。请注意,psi 在负实轴上有若干个零点,这些零点出现在非正整数极点之间。在零点附近,反射公式会出现抵消,并且实现会造成精度损失。然而,唯一的正零点和第一个负零点是通过使用 [2] 对数列展开进行预计算之后单独处理的,因此函数应该在原点附近保持完全精度。

参考信息

[1] (1,2,3)

NIST 数字数学函数库 https://dlmf.nist.gov/5

[2]

Fredrik Johansson 等人。“mpmath:一个用于任意精度的浮点数运算的 Python 库”(版本 0.19)http://mpmath.org/

示例

>>> from scipy.special import psi
>>> z = 3 + 4j
>>> psi(z)
(1.55035981733341+1.0105022091860445j)

验证 psi(z) = psi(z + 1) - 1/z

>>> psi(z + 1) - 1/z
(1.55035981733341+1.0105022091860445j)