Main Content

igamma

説明

igamma(nu,z) は、不完全ガンマ関数を出力します。

igamma は、上側不完全ガンマ関数の定義を使用します。MATLAB® 関数 gammainc は、下側不完全ガンマ関数の定義 gammainc(z, nu) = 1 - igamma(nu, z)/gamma(nu) を使用します。入力引数の順番はこれらの関数により異なります。

数値引数およびシンボリック引数に対する不完全ガンマ関数の計算

引数に応じて、igamma は浮動小数点解またはシンボリック厳密解の結果を返します。

次の数値について不完全ガンマ関数を計算します。これらの数値はシンボリック オブジェクトではないため、結果は浮動小数点数となります。

A = [igamma(0, 1), igamma(3, sqrt(2)), igamma(pi, exp(1)), igamma(3, Inf)]
A =
    0.2194    1.6601    1.1979         0

シンボリック オブジェクトに変換された数値に対する不完全ガンマ関数を計算します。

symA = [igamma(sym(0), 1), igamma(3, sqrt(sym(2))),...
igamma(sym(pi), exp(sym(1))), igamma(3, sym(Inf))]
symA =
[ -ei(-1), exp(-2^(1/2))*(2*2^(1/2) + 4), igamma(pi, exp(1)), 0]

vpa を使用し、これらの解を浮動小数点数で近似します。

vpa(symA)
ans =
[ 0.21938393439552027367716377546012,...
1.6601049038903044104826564373576,...
1.1979302081330828196865548471769,...
0]

下側不完全ガンマ関数の計算

igamma は、上側不完全ガンマ関数の定義に従って実装されます。下側不完全ガンマ関数を計算するには、次のように igamma から返された結果を変換します。

MATLAB 関数 gammainc を使用して、これらの引数の下側不完全ガンマ関数を計算します。

A = [-5/3, -1/2, 0, 1/3];
gammainc(A, 1/3)
ans =
   1.1456 + 1.9842i   0.5089 + 0.8815i   0.0000 + 0.0000i   0.7175 + 0.0000i

関数 igamma を使用して、同じ引数の下側不完全ガンマ関数を計算します。

1 - igamma(1/3, A)/gamma(1/3)
ans =
   1.1456 + 1.9842i   0.5089 + 0.8815i   0.0000 + 0.0000i   0.7175 + 0.0000i

一方または両方の引数が複素数の場合は、igamma を使用して下側不完全ガンマ関数を計算します。関数 gammainc は、複素数引数を受け入れません。

1 - igamma(1/2, i)/gamma(1/2)
ans =
   0.9693 + 0.4741i

入力引数

すべて折りたたむ

入力値。シンボリック数、変数、式または関数、あるいはシンボリック数、変数、式または関数のベクトルまたは行列として指定します。

入力値。シンボリック数、変数、式または関数、あるいはシンボリック数、変数、式または関数のベクトルまたは行列として指定します。

詳細

すべて折りたたむ

上側不完全ガンマ関数

次の積分は上側不完全ガンマ関数を定義します。

Γ(η,z)=ztη1etdt

下側不完全ガンマ関数

次の積分は下側不完全ガンマ関数を定義します。

γ(η,z)=0ztη1etdt

ヒント

  • MATLAB 関数 gammainc では複素数引数は受け入れられません。複素数引数では、igamma を使用します。

  • gammainc(z, nu) = 1 - igamma(nu, z)/gamma(nu) は、下側不完全ガンマ関数を上側不完全ガンマ関数で表現します。

  • igamma(nu,z) = gamma(nu)(1 - gammainc(z, nu)) は、上側不完全ガンマ関数を下側不完全ガンマ関数で表現します。

  • gammainc(z, nu, 'upper') = igamma(nu, z)/gamma(nu).

バージョン履歴

R2014a で導入

参考

| | | | |