Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

gammainc

正则化不完全 gamma 函数

说明

示例

Y = gammainc(X,A) 返回在 XA 的元素处计算的正则化下不完全 gamma 函数XA 必须都为实数,A 必须为非负值。

示例

Y = gammainc(X,A,type) 返回正则化下/上不完全 gamma 函数。type 的选项是 'lower'(默认值)和 'upper'

示例

Y = gammainc(X,A,scale) 缩放生成的正则化下/上不完全 gamma 函数,以避免下溢为零或损失精度。scale 可以是 'scaledlower',也可以是 'scaledupper'

示例

全部折叠

计算区间 a0x10 = 0.5、1、1.5 和 2 的正则化下不完全 gamma 函数。逐一计算每个 a 值对应的函数,将每个值的计算结果赋给 Y 的一列。

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$','interpreter','latex')
title('Regularized lower incomplete gamma function for $a = 0.5, 1, 1.5,$ and $2$','interpreter','latex')
xlabel('$x$','interpreter','latex')
ylabel('$P(x,a)$','interpreter','latex')

Figure contains an axes object. The axes object with title Regularized lower incomplete gamma function for $a = 0.5, 1, 1.5,$ and $2$, xlabel $x$, ylabel $P(x,a)$ contains 4 objects of type line. These objects represent $a = 0.5$, $a = 1$, $a = 1.5$, $a = 2$.

计算 a = 0.5、1、1.5 和 2 时在区间 0x10 内的正则化上不完全 gamma 函数。逐一计算每个 a 值对应的函数,将每个值的计算结果赋给 Y 的一列。

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),'upper');
end

在同一图窗中绘制所有函数。

plot(X,Y)
grid on
legend('$a = 0.5$','$a = 1$','$a = 1.5$','$a = 2$','interpreter','latex');
title('Regularized upper incomplete gamma function for $a = 0.5, 1, 1.5,$ and $2$','interpreter','latex')
xlabel('$x$','interpreter','latex')
ylabel('$Q(x,a)$','interpreter','latex')

Figure contains an axes object. The axes object with title Regularized upper incomplete gamma function for $a = 0.5, 1, 1.5,$ and $2$, xlabel $x$, ylabel $Q(x,a)$ contains 4 objects of type line. These objects represent $a = 0.5$, $a = 1$, $a = 1.5$, $a = 2$.

计算区间 0x2a=1 的未缩放的正则化下不完全 gamma 函数。绘制函数。

a = 1;
x = 0:0.001:2;
Y = gammainc(x,a);
plot(x,Y);
xlabel('$x$','interpreter','latex');
ylabel('$P(x,1)$','interpreter','latex')
hold on

接下来,计算缩放的下不完全 gamma 函数。在同一个图上绘制该函数。经过缩放的函数在 0 附近具有不同的渐近行为,可避免当 x 接近 0 时出现下溢。

Ys = gammainc(x,a,'scaledlower');
plot(x,Ys,'--');
legend('unscaled','scaled')

Figure contains an axes object. The axes object with xlabel $x$, ylabel $P(x,1)$ contains 2 objects of type line. These objects represent unscaled, scaled.

输入参数

全部折叠

输入数组,指定为标量、向量、矩阵或多维数组。X 的元素必须为实数。XA 必须大小相同,否则其中之一必须为标量。

数据类型: single | double

输入数组,指定为标量、向量、矩阵或多维数组。A 的元素必须为非负实数。XA 必须大小相同,或者其中之一必须为标量。

数据类型: single | double

正则化不完全 gamma 函数的类型,指定为 'lower''upper'。如果 type'lower',则 gammainc 返回正则化下不完全 gamma 函数。如果 type'upper',则 gammainc 返回正则化上不完全 gamma 函数

缩放选项,指定为 'scaledlower''scaledupper'。如果 scale'scaledlower''scaledupper',则 gammainc 按因子 Γ(a+1)ex/xa 对正则化下/上不完全 gamma 函数进行缩放,其中 Γ(a)gamma 函数。这种缩放可抵消函数在 0 附近的渐近行为,从而避免在使用小参量时发生下溢。

局限性

  • x 为负值时,对于 abs(x) > a+1,正则化不完全 gamma 函数可能不准确。

详细信息

全部折叠

不完全 gamma 函数

正则化下不完全 gamma 函数 P 和正则化上不完全 gamma 函数 Q 由下式定义:

P(x,a)=1Γ(a)0xta1etdt,Q(x,a)=1Γ(a)xta1etdt.

gamma 函数 Γ(a) 由下式定义:

Γ(a)=0ta1etdt.

MATLAB® 使用不完全 gamma 函数的正则化或归一化定义,其中 P(x,a)+Q(x,a)=1

缩放的下/上不完全 gamma 函数由下式定义:

Ps(x,a)=Γ(a+1)Γ(a)exxa0xta1etdt,Qs(x,a)=Γ(a+1)Γ(a)exxaxta1etdt.

正则化下不完全 gamma 函数的一些属性包括:

  • limxP(x,a)=1fora0

  • limx,a0P(x,a)=1

提示

  • 当正则化上不完全 gamma 函数接近 0 时,指定 'upper' 选项来计算该函数比从 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.

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |