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('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 Lower incomplete gamma function for $a = 0.5, 1, 1.5,$ and $2$ 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('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 Upper incomplete gamma function for $a = 0.5, 1, 1.5,$ and $2$ contains 4 objects of type line. These objects represent $a = 0.5$, $a = 1$, $a = 1.5$, $a = 2$.

计算未缩放的下不完全 gamma 函数,并将其与经过缩放的函数进行比较。

计算区间 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 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 之前推出

另请参阅

| | |