# gammainc
不完全gamma函数
函数库: TyMath
# 语法
Y = gammainc(X,A)
Y = gammainc(X,A,islower)
Y = gammainc(X,A,islower,scaled)
# 说明
Y = gammainc(X,A) 返回在 X 和 A 的元素处计算的下不完全 gamma 函数 。X 和 A 必须都为实数,A 必须为非负值。示例
Y = gammainc(X,A,islower) 返回下/上不完全 gamma 函数。islower 的选项是 true(默认值)和 false。示例
Y = gammainc(X,A,islower,scaled) 缩放生成的下/上不完全 gamma 函数,以避免下溢为零或损失精度。scaled 的选项是 false(默认值)和 true。示例
# 示例
绘制下不完全gamma函数
计算 a = 0.5、1、1.5 和 2 时在区间 0≤x≤10 内的下不完全 gamma 函数。逐一计算每个 a 值对应的函数,将每个值的计算结果赋给 Y 的一列。
using TyMath
using TyPlot
A = [0.5 1 1.5 2]
X = 0:0.05:10
Y = zeros(201,4)
for i = 1:4
Y[:,i] = gammainc(X,A[i])
end
在同一图窗中绘制所有函数。
plot(X,Y)
grid("on")
legend(["a = 0.5","a = 1","a = 1.5","a = 2"],loc="northeast")
title("a = 0.5、1、1.5 和 2 的下不完全 gamma 函数")
xlabel("x")
ylabel("P(x,a)")
绘制上不完全gamma函数
计算 a = 0.5、1、1.5 和 2 时在区间 0≤x≤10 内的上不完全 gamma 函数。逐一计算每个 a 值对应的函数,将每个值的计算结果赋给 Y 的一列。
using TyMath
using TyPlot
A = [0.5 1 1.5 2]
X = 0:0.05:10
Y = zeros(201,4)
for i = 1:4
Y[:,i] = gammainc(X,A[i],false)
end
在同一图窗中绘制所有函数。
plot(X,Y)
grid("on")
legend(["a = 0.5","a = 1","a = 1.5","a = 2"],loc="northeast")
title("a = 0.5、1、1.5 和 2 的上不完全 gamma 函数")
xlabel("x")
ylabel("Q(x,a)")
绘制缩放的不完全 gamma 函数
计算未缩放的下不完全 gamma 函数,并将其与经过缩放的函数进行比较。
计算区间 0≤x≤2 内 a=1 的未缩放的下不完全 gamma 函数。绘制函数。
using TyMath
using TyPlot
a = 1;
x = 0:0.001:2;
Y = gammainc(x,a);
plot(x,Y);
xlabel("x");
ylabel("P(x,1)")
hold("on")
接下来,计算缩放的下不完全 gamma 函数。在同一个图上绘制该函数。经过缩放的函数在 0 附近具有不同的渐近行为,可避免当 x 接近 0 时出现下溢。
Ys = gammainc(x,a,true,true);
plot(x,Ys,"--");
legend(["unscaled","scaled"])
# 输入参数
X - 输入数组标量 | 向量 | 矩阵 | 多维数组
输入数组,指定为标量、向量、矩阵或多维数组。X 的元素必须为非负实数。X 和 A 必须大小相同,或者其中之一必须为标量。
数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16 | UInt
A - 输入数组标量 | 向量 | 矩阵 | 多维数组
输入数组,指定为标量、向量、矩阵或多维数组。A 的元素必须为实数。X 和 A 必须大小相同,否则其中之一必须为标量。
islower - 不完全 gamma 函数的类型true(默认) | false
不完全 gamma 函数的类型,指定为 true 或 false。如果 islower 是 true,则 gammainc 返回下不完全 gamma 函数。如果 islower 是 false,则 gammainc 返回上不完全 gamma 函数。
scaled - 缩放选项false(默认) | true
缩放选项,指定为 false 或 true。如果 scaled 是 true,则 gammainc 按因子
# 局限性
当 x 为负值时,对于 abs(x) > a+1,不完全 gamma 函数可能不准确。
# 详细信息
不完全gamma函数
下不完全 gamma 函数 P 和上不完全 gamma 函数 Q 由下式定义:
gamma函数
Julia使用不完全gamma函数的归一化定义,其中P(a,x) + Q(a,x) = 1。
下不完全 gamma 函数的一些属性包括:
# 提示
- 当上不完全 gamma 函数接近 0 时,指定 false 选项来计算该函数比从 1 中减去下不完全 gamma 函数更精确。
# 参考
[1] Olver, F. W. J., A. B. Olde Daalhuis, D. W. Lozier, B. I. Schneider, R. F. Boisvert, C. W. Clark, B. R. Miller, and B. V. Saunders, eds., Chapter 8. Incomplete Gamma and Related Functions, NIST Digital Library of Mathematical Functions, Release 1.0.22, Mar. 15, 2018.
# 另请参阅
gamma | gammaincinv | gammaln | psi