このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
gammaln
対数ガンマ関数
説明
例
数値引数およびシンボリック引数に対する対数ガンマ関数
引数に応じて、gammaln
は浮動小数点解またはシンボリック厳密解の結果を返します。
次の数値について対数ガンマ関数を計算します。これらの数値はシンボリック オブジェクトではないため、結果は浮動小数点数となります。
A = gammaln([1/5, 1/2, 2/3, 8/7, 3])
A = 1.5241 0.5724 0.3032 -0.0667 0.6931
シンボリック オブジェクトに変換された数値に対する対数ガンマ関数を計算します。多くのシンボリック数 (厳密) な数値では、gammaln
は結果を関数 gammaln
、log
および 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]
非正の整数の引数について対数ガンマ関数を計算します。非正の整数では、gammaln
は Inf
を返します。
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
負の値をよく見るために、同じ関数を 1 から 2 までの範囲でプロットします。
fplot(gammaln(x),[1 2])
grid on
対数ガンマ関数を含む式の処理
diff
や limit
など、多くの関数は 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 で導入