pianofisica

Mathematics & Physics, Maxima, a bit Python & Wolfram, and Arts

n次元球の体積と表面積

数学の具体的な計算にMaximaを使って、数学もMaximaも同時に学んでしまいましょう。

今回はMaximaを使って n 次元球の体積と表面積を計算をしてみたいと思います。

Maximaのごく基本的な使い方については以下の記事を参照してください:

pianofisica.hatenablog.com

また、今回はGamma関数とBeta関数をガシガシ利用しますが、これらについては

pianofisica.hatenablog.com

を参考にしてみてください。



予備計算その1

 \displaystyle{H_2(a,b)=\iint_{V_2} dxdy \ x^{a-1}y^{b-1}=\frac{\Gamma\left(a\right)\Gamma\left(b\right)}{\Gamma\left(a+b+1\right)}}

ここで積分範囲  V_2

 V_2=\{(x,y)\in\mathbb{R}^2 \,|\,x+y<1, \ x>0, \ y>0\}

とします。よって  (x,y)積分範囲を具体的に書くと、例えば

 \displaystyle{H_2(a,b)=\int_0^1 dx \ x^{a-1} \int_0^{1-x} dy \ y^{b-1}}

となります。まず  y 積分を実行すると

 \displaystyle{\int_0^{1-x} dy \ y^{b-1}=\left[{{y^{b}}\over{b}}\right]_{y=0}^{1-x}=\frac{1}{b}(1-x)^{b}}

次にBeta関数の定義により、 x 積分

 \displaystyle{\int_0^1 dx \ x^{a-1}(1-x)^{b}=B(a, b+1)}

と表せます。さらに、Beta関数とGamma関数の関係から

 \displaystyle{B(a, b+1)=\frac{\Gamma\left(a\right)\Gamma\left(b+1\right)}{\Gamma\left(a+b+1\right)}}

そしてGamma関数の性質  \Gamma(b+1)=b\Gamma(b) より

 \displaystyle{H_2(a,b)=\frac1b \frac{\Gamma\left(a\right)\,b\Gamma\left(b\right)}{\Gamma\left(a+b+1\right)}= \frac{\Gamma\left(a\right)\Gamma\left(b\right)}{\Gamma\left(a+b+1\right)}}

として公式が得られます。

さて、この計算をMaximaで実行させるには

kill(all)$ assume(a>1,b>1,x>0,y>0,x<1)$
Y:integrate(y^(b-1), y, 0, 1-x)$
X:integrate(x^(a-1)*Y, x, 0, 1);

と入力します。ただし、計算結果はBeta関数を使った形で出力されます。

 


予備計算その2

 \displaystyle{H_3(a,b,c)=\iiint_{V_3} dxdydz \ x^{a-1}y^{b-1}z^{c-1}=\frac{\Gamma\left(a\right)\Gamma\left(b\right)\Gamma\left(c\right)}{\Gamma\left(a+b+c+1\right)}}

ここで積分範囲  V_3

 V_3=\{(x,y,z)\in\mathbb{R}^3 \,|\,x+y+z<1, \ x>0, \ y>0, \ z>0\}

とします。よって  (x,y,z)積分範囲を具体的に書くと、例えば

 \displaystyle{H_3(a,b,c)=\int_0^1 dx \ x^{a-1} \int_0^{1-x} dy \ y^{b-1}\int_0^{1-x-y} dz \ z^{c-1}}

となります。まず  z 積分を実行すると

 \displaystyle{ \int_0^{1-x-y} dz \ z^{c-1}=\left[{{z^{c}}\over{c}}\right]_{z=0}^{1-x-y}=\frac{1}{c}(1-x-y)^{c}}

次に  y 積分 y=(1-x)\eta と変数変換すると

 \displaystyle{\int_0^{1-x} dy \ y^{b-1} \left(1-x-y\right)^{c}=(1-x)^{b+c}\int_0^{1} d\eta \ \eta^{b-1} \left(1-\eta\right)^{c}}

と表せます。Beta関数の定義から

 \displaystyle{H_3(a,b,c)=\frac1c\int_0^1 dx \ x^{a-1}(1-x)^{b+c}\int_0^{1} d\eta \ \eta^{b-1} \left(1-\eta\right)^{c}\\\qquad\quad\ \ \ =\frac1cB(a,b+c+1)B(b,c+1)}

Beta関数とGamma関数の関係を使い、Gamma関数の性質を使うことにより

 \displaystyle{H_3(a,b,c)=\frac1c\frac{\Gamma(a)\Gamma(b+c+1)}{\Gamma(a+b+c+1)}\frac{\Gamma(b)\ c\Gamma(c)}{\Gamma(b+c+1)}\\\qquad\quad\ \ \ =\frac{\Gamma\left(a\right)\Gamma\left(b\right)\Gamma\left(c\right)}{\Gamma\left(a+b+c+1\right)}}

として公式を示せます。

予備計算その3

 \displaystyle{H_4(a,b,c,d)=\iiiint_{V_4} dxdydzdw \ x^{a-1}y^{b-1}z^{c-1}w^{d-1}=\frac{\Gamma\left(a\right)\Gamma\left(b\right)\Gamma\left(c\right)\Gamma\left(d\right)}{\Gamma\left(a+b+c+d+1\right)}}

積分範囲は

 V_4=\{(x,y,z,w)\in\mathbb{R}^4 \,|\,x+y+z+w<1, \ x>0, \ y>0, \ z>0, \ w>0\}

です。上の場合と同様に逐次的に積分すればこの公式を示すことができます。

ここではその代わりにMaximaを使って積分を求めます:

kill(all)$ 
assume(a>1,b>1,c>1,d>1,x>0,y>0,z>0,w>0,z+y+x<1,y+x<1,x<1)$
W:integrate(w^(d-1), w, 0, 1-x-y-z)$
Z:integrate(z^(c-1)*W, z, 0, 1-x-y)$
Y:integrate(y^(b-1)*Z, y, 0, 1-x)$
X:integrate(x^(a-1)*Y, x, 0, 1);

と入力して

 \displaystyle{H_4(a,b,c,d)=\frac{1}{d} B(a,b+c+d+1)B(b,c+d+1)B(c,d+1)}

を得ます。ここでBeta関数とGamma関数の関係式、Gamma関数の性質から上の公式を示せます。



予備計算のまとめ

ここまでの計算結果、その計算方法から一般に

 \displaystyle{H_n(a_1,a_2,\dots,a_n)=\idotsint_{V_n} dx_1dx_2\dots dx_n \ x_1^{a_1-1}x_2^{a_2-1}\dots x_n^{a_n-1}={{\prod_{i=1}^n\Gamma\left(a_i\right)}\over{\Gamma\left(1+\sum_{i=1}^n a_i\right)}}}

がわかります。ここで積分範囲は

 V_n=\{(x_1,x_2,\dots,x_n)\in\mathbb{R}^n \,|\,\sum_{i=1}^nx_i<1, \ x_i>0\}

です。

n 次元球の体積

ここまでの予備計算をもとに n 次元球の体積

 \displaystyle{{\rm Vol}_{S^n}=\idotsint_{S^n} dx_1dx_2\dots dx_n}

を計算してみます。ここで積分範囲は

 \displaystyle{ S^n=\{(x_1,x_2,\dots,x_n)\in\mathbb{R}^n \,|\, \sum_{i=1}^n x_i^2< {r}^2 \} }

です。まず積分変数を

 x_i=r\xi_i

とすると

 \displaystyle{{\rm Vol}_{S^n}={r}^n\idotsint_{{\bar{S}}^n} d\xi_1d\xi_2\dots d\xi_n}

です。変数変換によって積分範囲が単位球

 \displaystyle{ {\bar{S}}^n=\{(\xi_1,\xi_2,\dots,\xi_n)\in\mathbb{R}^n \,|\, \sum_{i=1}^n \xi_i^2< 1 \} }

になっています。さらに

 \eta_i=\xi_i^2

と変数変換すると

 \displaystyle{{\rm Vol}_{S^n}={r}^n\idotsint_{V_n} d\eta_1d\eta_2 \dots d\eta_n \ \eta_1^{-\frac12}\eta_2^{-\frac12}\dots \eta_n^{-\frac12}}

とかけます。予備計算から

 \displaystyle{{\rm Vol}_{S^n}={r}^nH_n\left(\frac12,\frac12,\dots,\frac12\right)={r}^n\frac{\left(\Gamma\left(\frac12\right)\right)^n}{\Gamma\left(\frac{n}2+1\right)}}

がわかります。 \Gamma\left(1/2\right)=\sqrt{\pi} より

 \displaystyle{{\rm Vol}_{S^n}=\frac{{r}^n\ \pi^{\frac{n}{2}}}{\Gamma\left(\frac{n}2+1\right)}}

を得ます。

1次元から10次元までの球の体積をMaximaを使って具体的にみてみましょう:

V[n]:=r^n*sqrt(%pi)^(n)/gamma(n/2+1)$
makelist(V[n], n, 1, 10);

n 次元球の表面積

n 次元球の体積から、その表面積は

 \displaystyle{{\rm Area}_{S^n}=\frac{d {\rm Vol}_{S^n}}{dr}=\frac{n\ {r}^{n-1}\ \pi^{\frac{n}{2}}}{\Gamma\left(\frac{n}2+1\right)}}

と求まります。

1次元から10次元までの球の表面積をMaximaを使って具体的にみてみましょう:

makelist(diff(V[n], r), n, 1, 10);

 

キーワード:n 次元球の体積、Gamma関数、Beta関数、Maxima

プライバシーポリシー