\usepackageamsmath\usepackageamsfonts\usepackageamssymb\usepackagefancybox\usepackagegraphics\usepackagemathrsfs\usepackage[all]xy\usepackagepgfplots\pgfplotssetcompat=newest\usetikzlibraryintersections,calc,arrows.meta

階乗の一般化のガンマ関数(Γ関数)を解説|定義と基本性質

微分積分学
微分積分学

正の整数n階乗n!とは,n以下の全ての正の整数の積のことをいうのでした.例えば,

5!=5×4×3×2×1

ですね.実はガンマ関数という関数があり,このガンマ関数は階乗の実数(複素数)への拡張としてよく知られています.

ガンマはギリシャ文字のΓのことで,Γ関数と書くこともあります.なお,Γの小文字はγです.

ガンマ関数は微分積分学だけでなく,統計学や複素解析においても現れる重要な関数です.

この記事では

  • ガンマ関数の定義と具体例
  • ガンマ関数の基本性質
  • ガンマ関数とベータ関数との関係

を順に説明します.

ガンマ関数の定義と具体例

まずはガンマ関数Γを定義し,具体的にΓ(1), Γ(12)を求めましょう.

ガンマ関数の定義

正の実数xに対して

Γ(x)=0tx1etdt

で定まる実数値関数Γガンマ関数(gamma function)という.

広義積分0tx1etdtx>0のとき収束し,x0のとき発散することは,この記事の最後に証明しています.

ガンマ関数は実部が正の複素数に対しても同様に定義できますが,この記事では主に実数の場合を説明します.

具体的にΓ(1), Γ(12)を求めてみましょう.

具体例1(Γ(1)=1

Γ(1)はガンマ関数の定義より

Γ(1)=0t11etdt=0etdt=[et]0=0+e0=1

となりますね.

のちに説明するように,0以上の整数nに対してΓ(n+1)=n!が成り立つので,このΓ(1)=10!=1ということに相当します.

具体例2(Γ(1/2)=π

Γ(12)はガンマ関数の定義より

Γ(12)=0t121etdt=01tetdt

となりますね.s=tとおくと,dsdt=12tであり,t0からを動くときs0からを動くので,

Γ(12)=20es2ds=es2ds

が成り立ちます.最後の積分はガウス積分πに収束するので,Γ(12)=πと分かります.

このようにΓ(12)はガウス積分に帰着できて値がπであることは知っておいて良いでしょう.





ガンマ関数の性質

ガンマ関数の基本性質を解説します.

ガンマ関数の別の表し方

ガンマ関数は以下のように表すこともできます.

正の実数xに対して

Γ(x)=20s2x1es2ds

が成り立つ.

これは先ほど求めたΓ(12)の計算のように置換することで得られます.

ガンマ関数の定義Γ(x)=0tx1etdtに対して,s=tとおくと,

dsdt=12t2sdsdt=1

であり,t0からを動くときs0からを動くから,

Γ(x)=0(s2)x1es2(2sds)=20s2x1es2ds

が成り立つ.

Γ(x+1)Γ(x)の関係

冒頭でも説明したように,ガンマ関数は階乗の一般化と捉えることができます.このことを示すために重要な性質を証明しましょう.

正の実数xに対して

Γ(x+1)=xΓ(x)

が成り立つ.

ガンマ関数の定義と部分積分により

Γ(x+1)=0t(x+1)1etdt=0txetdt=[txet]00(xtx1et)dt=0+x0tx1etdt=xΓ(x)

が成り立つ.

この命題を用いて,具体的にΓ(5), Γ(52)を求めてみましょう.

具体例3(Γ(5)

Γ(5)

Γ(5)=4Γ(4)=43Γ(3)=432Γ(2)=4321Γ(1)=4!Γ(1)

となって,具体例1で計算したΓ(1)=1よりΓ(5)=4!と分かります.

このように,Γ(1)=1を当たり前にしておけば,帰納的に考えればガンマ関数の正の整数での値は簡単に求められますね.

具体例4(Γ(5/2)

Γ(52)

Γ(52)=32Γ(32)=3212Γ(12)=3122Γ(12)

となって,具体例2で計算したΓ(12)=πよりΓ(52)=3122πと分かります.

Γ(5)の計算と同様に,Γ(12)=πを当たり前にしておけば,帰納的に考えればガンマ関数の正の半整数での値は簡単に求められますね.

ガンマ関数と階乗の関係

具体例3のΓ(5)=4!を一般化すると次のようになりますね.

正の整数nに対して

Γ(n+1)=n!

が成り立つ.

数学的帰納法により示す.

[1]Γ(0+1)=Γ(1)=1=0!だから,n=0のときは成り立つ.

[2]あるnNに対してΓ(n+1)=n!が成り立つと仮定すると,Γ(x+1)Γ(x)の関係より

Γ((n+1)+1)=Γ(n+2)=(n+1)Γ(n+1)=(n+1)n!=(n+1)!

が成り立つ.

ベータ関数との関係

ガンマ関数と関係の深い関数にベータ関数があります.ベータ関数の定義は次の通りです.

正の実数x, yに対して

B(x,y)=01tx1(1t)y1dt

で定まる2変数関数Bベータ関数(beta function)という.

t=sin2θと置換することにより,

B(x,y)=01(sin2θ)x1(1sin2θ)y12sinθcosθdθ=20π2sin2x1θcos2y1θdθ

とも表せますね.

さて,ガンマ関数を用いると,ベータ関数は以下のように表せます.

正の実数x, yに対して

B(x,y)=Γ(x)Γ(y)Γ(x+y)

が成り立つ.

Γ(x)Γ(y)=Γ(x+y)B(x,y)を示せばよい.先ほど説明したガンマ関数の別の表し方を用いると

Γ(x)Γ(y)=(20u2x1eu2du)(20v2y1ev2dv)=40(0u2x1v2y1eu2v2du)dv

である.極座標変換(u,v)=(rcosθ,rsinθ)を用いると,ヤコビアンがrであることに注意して

Γ(x)Γ(y)=0(0π2r(rcosθ)2x1(rsinθ)2y1er2dθ)dr=(20r2(x+y)1er2dr)(20π2cos2x1θsin2x1θdθ)

となる.上で示したガンマ関数の別の表し方からΓ(x+y)=20r2(x+y)1er2drであり,一方t=sin2θと置けば

20π2sin2x1θcos2y1θdθ=01(sin2θ)x1(1sin2θ)y1(2sinθcosθdθ)=B(x,y)

となる.以上よりΓ(x)Γ(y)=Γ(x+y)B(x,y)を得る.





補足

最後にいくつか補足します.

複素関数としてのガンマ関数

ガンマ関数は複素変数に対しても定義されます.

実部が正の複素数zに対して

Γ(z)=0tz1etdt

で定まる複素関数Γガンマ関数(gamma function)という.

ただし,tztz=ezlogtで定まる複素数である.

実数の場合と同様に次が成り立ちます.

実部が正の実数zに対して

Γ(z+1)=zΓ(z)

が成り立つ.

複素関数論においてガンマ関数は非常に興味深い正則関数ですが,この記事では以上の説明に留めます.

広義積分としてのガンマ関数

ガンマ関数Γ(z)=0tx1etdtの被積分関数tx1etは,x<1のときはtが負冪になるのでt=0では定義されません.そのため,x<1のときは

  • 0付近での積分
  • 無限遠方までの積分

のふたつの意味で広義積分となっており,このことをきちんと表すと

Γ(z):=limr+0RrRtx1etdt

ということになりますね.

一方,x1のときはt=0でも定義されるので,無限遠方までの積分の意味で広義積分となっており,

Γ(z):=limR0Rtx1etdt

ということになりますね.

ガンマ関数が収束することの証明

そもそも「ガンマ関数Γを正の実数xに対して

Γ(x)=0tx1etdt

と定める」というためには,正の実数xに対して広義積分0tx1etdtが収束していることを示さないといけませんね.

直観的には,tについて

  • 無限遠方では(tx1よりも)指数減衰etが強いので収束
  • 0付近ではet1なのでtx1の増大(特異性)が弱ければ収束

ということになりますね.

正の実数xに対して,広義積分0tx1etdtは収束する.すなわち,Γ(x)は有限の値をとる.

極限limttx1et2=0より,あるT>0が存在して,tT

tx1et21tx1etet2

が成り立つ.以下,Ttx1etdt, 0Ttx1etdtの両方が収束することを示す.

これらが示されれば,広義積分0tx1etdtが収束することが分かる.

[T,)での積分

被積分関数tx1ettTで非負値で,

Ttx1etdtTet2dt=[2et2]T=2eT2<

なので,Ttx1etdtは収束する.

[0,T]での積分((0,T]での広義積分)

0tTet1だから,

0Ttx1etdt0Ttx1dt=[1xtx]0T=1xTx<

なので,Ttx1etdtは収束する.ただし,

  • 一つ目の等号ではx11であること
  • 二つ目の等号ではx>0であること

に注意.

一方,x0のときは0付近でtx1の増大が大きく,01tx1etdtが発散します.実際,x=0なら

01t01etdt01t1e1dt=1e[logt]01=

と発散し,x<0ならlimt+0tx=なので

0Ttx1etdt0Ttx1dt=[1xtx]0T=

と発散しますね.

コメント