2026a
# psi
digamma 和 polygamma 函数
函数库: TyMath
# 语法
Y = psi(X)
Y = psi(k, X)
# 说明
Y = psi(X) 为数组 X 的每个元素计算 digamma 函数,各元素必须为非负实数。示例
Y = psi(k,X) 计算 X 的 polygamma 函数,计算的值是在 X 处的 digamma 函数的 k 阶导数。因此,psi(0,X) 是 digamma 函数,psi(1,X) 是 trigamma 函数,psi(2,X) 是 tetragamma 函数,以此类推。示例
# 示例
计算 Euler-Mascheroni 常量
使用 psi 函数计算 Euler-Mascheroni 常量 γ,也称为欧拉常量。
using TyMath
Y = -psi(1)
Y = 0.5772156649015325
计算 trigamma 函数
计算 2 的 trigamma 函数。
using TyMath
Y1 = psi(1,2)
Y1 = 0.6449340668482261
检查结果是否等于
Y2 = pi^2/6-1
Y2 = 0.6449340668482264
isapprox(Y1, Y2)
ans = true
绘制 digamma 和 polygamma 函数
定义域。
using TyMath
using TyPlot
X = 0:0.05:5
计算 digamma 和接下来的三个 polygamma 函数。
Y = zeros(4,101)
for i = 0:3
Y[i+1,:] = psi(i,X)
end
绘制 digamma 和接下来的三个 polygamma 函数。
plot(X,Y')
xlim([0,5])
ylim([-10,10])
legend([raw"$\psi$",raw"$\psi_1$",raw"$\psi_2$",raw"$\psi_3$"],loc="northeast")
title("Digamma and The Next Three Polygamma Functions")
xlabel(raw"$x$")
ylabel(raw"$\psi_k(x)$")
# 输入参数
X - 输入向量 | 矩阵 | 多维数组
输入,指定为标量、向量、矩阵或非负实数的多维数组。X 不能为稀疏矩阵。
数据类型: Float
k - 导数的阶非负整数标量
导数的阶,指定为非负整数标量。k 必须小于
数据类型: Int
# 详细信息
digamma 函数
digamma 函数是 gamma 函数的对数的一阶导数:
polygamma 函数
k 阶的 polygamma 函数是 gamma 函数的对数的 (k+1) 阶导数:
# 参考
[1] Abramowitz, M. and I. A. Stegun, Handbook of Mathematical Functions, Dover Publications, 1965, Sections 6.3 and 6.4.