読者です 読者をやめる 読者になる 読者になる

一般化球の体積

前回の日記にあった一般次元での超球(hypersphere)の体積の導出をやってみたい。
定義:n次元の超球を以下のように定められるn+1次元空間における領域とする

 x_{0}^{2} + x_{1}^{2} + ... + x_{n-1}^{2} \leq 1

この体積を求めたい。簡単のためにこれをV[n]などと置こう。これはつぎの積分で求められる:

V_{n} = \int_{x_{0}^{2} + x_{1}^{2} + ... + x_{n-1}^{2} \leq 1} \mathrm{d}x_{0}\mathrm{d}x_{1}\cdots \mathrm{d}x_{n}

右辺を変形していく。積分
 \int_{x_{0}^{2} + x_{1}^{2} + ... + x_{n-1}^{2} \leq 1} \mathrm{d}x_{0}\mathrm{d}x_{1}\cdots \mathrm{d}x_{n}
は、 \int_{-1}^{1}\mathrm{d}x_{0}\int_{x_{1}^{2} + ... + x_{n-1}^{2} \leq 1-x_{0}^{2}}\mathrm{d}x_{1}\cdots \mathrm{d}x_{n}にほかならない。よくよく見ると二つ目の積分は半径 √(1-x[0]^2)のn-1次元超球の体積であって、これは(1-x[0]^2)^((n-1)/2)V[n-1]とかける。x[0]に関係ない部分を積分の前に出せば
V[n-1] ∫dx[0] (for 0 <= x[0] <=1) (1-x[0]^2)^((n-1)/2)となるので、つまり問題は積分変数をx書き直して、
 \int_{-1}^{1} \mathrm{d}x\ (1-x^{2})^{\frac{n-1}{2}}
を解けばどうやら良さそうということになる。


さて、この積分をどうやって評価しよう。前の記事で書いたように、一般化次元の超球体積にはΓ関数が登場する。このことを知っていればヒントになる。Γ関数はベータ関数と仲がよいことが頭をよぎれば解けたようなもので、無理やりその形に変形してやればいい。まずは被積分関数が偶関数なので、x: -1→1を、0→1とし、結果を2倍して答えを出すことにする。被積分関数を変形していく。(1-x^{2})の部分だけど、これを(1+x)(1-x)と書けば自然、1+x=yなどと置きたくなってくるだろう。積分区間はy:1→2となって一瞬びびるが、やはり積分変数変換でうまいこと計算される。
 \int_{1}^{2}\mathrm{d}y\ y^{\frac{n-1}{2}}(2-y)^{\frac{n-1}{2}}
ここでy=2zとするのである。積分区間はz: 1/2→1となり、
 2^{n}\int_{\frac{1}{2}}^{1}\mathrm{d}y\ z^{\frac{n-1}{2}}(1-z)^{\frac{n-1}{2}}

はて、積分区間が1/2→1で、ベータ関数の定義(0→1)とはずれているようだが。と思ってよくよく被積分関数の形を見ると、これは1/2を中心とした線対称形になっているので、0→1で積分して半分にすればいいとわかる。
 2^{n-1}\int_{0}^{1}\mathrm{d}y\ z^{\frac{n-1}{2}}(1-z)^{\frac{n-1}{2}}
これは2^(n-1) * B((n+1)/2, (n+1)/2)にほかならない。Bはベータ関数である。
ベータ関数 - Wikipedia
ベータ関数はΓ関数を使って書き直せる。B((n+1)/2, (n+1)/2)=Γ((n+1)/2)^2/Γ(n+1)。ここまでの結果を踏まえて、V[n]をV[n-1]を使って書くと
 V_{n} = 2^{n-1}\frac{\Gamma (\frac{n+1}{2})^{2}}{\Gamma (n+1)}V_{n-1}
となる。



と、ここまで書いてみて詰まる。すんなりとここから答えに到達できるほど自分はガンマ関数とは仲良しではなかった。ちょっと考えてみます。