scipy.special.psi#

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

双伽玛函数。

z 处求值的伽玛函数的对数导数。

参数:
zarray_like

实数或复数参数。

ndarray,可选

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)