Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

gammaln

説明

gammaln(X) は、X の各要素の対数ガンマ関数を返します。

数値引数およびシンボリック引数に対する対数ガンマ関数

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

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

A = gammaln([1/5, 1/2, 2/3, 8/7, 3])
A =
    1.5241    0.5724    0.3032   -0.0667    0.6931

シンボリック オブジェクトに変換された数値に対する対数ガンマ関数を計算します。多くのシンボリック数 (厳密) な数値では、gammaln は結果を関数 gammalnlog および gamma として返します。

symA = gammaln(sym([1/5, 1/2, 2/3, 8/7, 3]))
symA =
[ gammaln(1/5), log(pi^(1/2)), gammaln(2/3),...
log(gamma(1/7)/7), log(2)]

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

vpa(symA)
ans =
[ 1.5240638224307845248810564939263,...
0.57236494292470008707171367567653,...
0.30315027514752356867586281737201,...
-0.066740877459477468649396334098109,...
0.69314718055994530941723212145818]

複素平面の対数ガンマ関数の定義

gammaln は、負の無限を除くすべての複素引数で定義されています。

正の整数の引数について対数ガンマ関数を計算します。このような引数では、対数ガンマ関数はガンマ関数 gammaln(x) = log(gamma(x)) の自然対数として定義されます。

pos = gammaln(sym([1/4, 1/3, 1, 5, Inf]))
pos =
[ log((pi*2^(1/2))/gamma(3/4)), log((2*pi*3^(1/2))/(3*gamma(2/3))), 0, log(24), Inf]

非正の整数の引数について対数ガンマ関数を計算します。非正の整数では、gammalnInf を返します。

nonposint = gammaln(sym([0, -1, -2, -5, -10]))
nonposint =
[ Inf, Inf, Inf, Inf, Inf]

複素数および負の有理数の引数について対数ガンマ関数を計算します。これらの引数では、gammaln は未解決のシンボリックな呼び出しを返します。

complex = gammaln(sym([i, -1 + 2*i , -2/3, -10/3]))
complex =
[ gammaln(1i), gammaln(- 1 + 2i), gammaln(-2/3), gammaln(-10/3)]

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

vpa(complex)
ans =
[ - 0.65092319930185633888521683150395 - 1.8724366472624298171188533494366i,...
- 3.3739449232079248379476073664725 - 3.4755939462808110432931921583558i,...
1.3908857550359314511651871524423 - 3.1415926535897932384626433832795i,...
- 0.93719017334928727370096467598178 - 12.566370614359172953850573533118i]

対数ガンマ関数の負の無限大を計算します。

gammaln(sym(-Inf))
ans =
NaN

対数ガンマ関数のプロット

対数ガンマ関数を 0 から 10 までの範囲でプロットします。

syms x
fplot(gammaln(x),[0 10])
grid on

Figure contains an axes object. The axes object contains an object of type functionline.

負の値をよく見るために、同じ関数を 1 から 2 までの範囲でプロットします。

fplot(gammaln(x),[1 2])
grid on

Figure contains an axes object. The axes object contains an object of type functionline.

対数ガンマ関数を含む式の処理

difflimit など、多くの関数は lngamma を含む式を処理することができます。

対数ガンマ関数を微分します。

syms x
diff(gammaln(x), x)
ans =
psi(x)

対数ガンマ関数を含むこれらの式の極限を計算します。

syms x
limit(1/gammaln(x), x, Inf)
ans =
0
limit(gammaln(x - 1) - gammaln(x - 2), x, 0)
ans =
log(2) + pi*1i

入力引数

すべて折りたたむ

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

アルゴリズム

gammaln(x) への single または double の入力の場合、x は正の実数でなければなりません。

シンボリック入力の場合

  • gammaln(x) は、特異点 0、-1、-2、... を除くすべての複素数 x で定義されています。

  • 正の実数 x の場合、gammaln(x) は対数ガンマ関数 log(gamma(x)) を表します。

  • 負の実数 x または複素数 x の場合、gammaln(x) = log(gamma(x)) + f(x)2πi です。ここで、f(x) は整数値関数です。2πi の整数倍は、gammaln(x) が、負の実数半軸に沿った分枝切断をもつ複素平面全体において解析的であるように選択されます。

  • 負の実数 x の場合、gammaln(x) は上記の log(gamma(x)) の極限と等しくなります。

バージョン履歴

R2014a で導入

参考

| | | |