正規分布
$$\mathcal{N}(x|\mu,\sigma)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp\{-\frac{1}{2\sigma^2}(x-\mu)^2\}$$
は様々な特徴を持つ重要な分布であるが、この記事では、 \(M\) 個の確率変数 \(x_1,x_2,\cdots,x_M\) が独立に標準正規分布にしたがうときの同時分布が満たす規格化条件
$$\int_{-\infty}^{\infty}(2\pi)^{-\frac{M}{2}}\exp(-\frac{x_1^2+x_2^2+\cdots+x_M^2}{2})dx_1dx_2\cdots dx_M = 1 \tag{1}$$
より、 \(M\) 次元空間における単位球(半径1の球)の表面積を求める方法について解説するとともに、その過程で、直交座標を極座標に変換する際の考え方について、視覚的な理解を提供する。
基本的な方針
\((1)\) 式は、 \(x_1,x_2,\cdots,x_M\) の \(M\) 次元直交座標によって表現されているが、これを極座標で表現したとき、原点からの距離 \(r\) が
$$r^2=x_1^2+x_2^2+\cdots+x_M^2$$
で表されることを利用すると、被積分関数を \(r\) のみの関数とすることができる。
そのために、まず、 \((x_1,x_2,x_3,\cdots,x_M) \to (r,\theta_1,\theta_2,\cdots,\theta_{M-1})\) の変数変換について考えよう。
直交座標→極座標の変換
3次元直交座標→3次元極座標の変換
\(M\) 次元直交座標→ \(M\) 次元極座標の変換を考える前に、3次元の \((x_1,x_2,x_3)\to(r,\theta_1,\theta_2)\) の変換について、図を用いながら視覚的なイメージを示す。
一般に、 \(x_1,x_2,x_3\) は以下の関係式にしたがって、極座標に変換される。
$$x_1 = r\cos{\theta_2}\sin{\theta_1}$$
$$x_2 = r\sin{\theta_2}\sin{\theta_1}$$
$$x_3 = r\cos{\theta_1}$$
この関係式を用いて、例えば \(r=3\) に固定して \(\theta_1,\theta_2\) を \([0,\frac{\pi}{2}]\) の範囲で動かすと、半径 \(3\) の \(\frac{1}{8}\) 球を得ることができる。
なお、下図では \(x_1=X,x_2=Y,x_3=Z) の対応がある。
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
r = 3 # 半径を指定
theta_1_0 = np.linspace(0, np.pi/2, 100) # θ_1は[0,π/2]の値をとる
theta_2_0 = np.linspace(0, np.pi/2, 100) # θ_2は[0,π/2]の値をとる
theta_1, theta_2 = np.meshgrid(theta_1_0, theta_2_0) # 2次元配列に変換
x = np.cos(theta_2)*np.sin(theta_1) * r # xの極座標表示
y = np.sin(theta_2)*np.sin(theta_1) * r # yの極座標表示
z = np.cos(theta_1) * r # zの極座標表示
fig = plt.figure() # 描画領域を作成
ax = fig.add_subplot(111, projection="3d") # 3Dの軸を作成
ax.plot_surface(x,y,z) # 球を3次元空間に表示
plt.xlim([0,3])
plt.ylim([3,0]) # Y軸の表示は初期値とは逆にする
ax.set_zlim([0,3])
plt.xlabel("X")
plt.ylabel("Y")
ax.set_zlabel("Z")
plt.show()
ここで、3次元直交座標において \(dx_1dx_2dx_3\) で体積を表すことができた微小領域が、3次元極座標ではどのように表すことができるのかについて考える。
3次元極座標における微小領域は、各変数の値を微小量 \(dr,d\theta_1,d\theta_2\) だけ動かすことによって表現することができるので、以下の緑色の空間として図示される(製図のためのPythonコードについてはこの記事の最後を参照)。
この図において、円の球の半径の方向が \(r\) であり、この \(r\) の \(XY\) 平面に垂直な平面上での回転が \(\theta_1\) 、 \(XY\) 平面に平行な平面上での回転が \(\theta_2\) である。
ここで、上図の緑で示した微小領域において、球に接している面をこの微小領域の「底面」と呼ぶことにすると、微小領域の高さに相当するのは \(dr\) であることがわかる。
次に、 \(\theta_1\) 方向の回転を図示する。
上図によると、この方向の底面の辺の長さは、弧度法の定義より \(rd\theta_1\) と表せる。
最後に \(\theta_2\) 方向の回転を図示すると下図の青線のようになる。
このとき、 \(\theta_2\) 方向の回転における半径(青)は、球の半径(赤)との関係から、 \(r,\theta_1\) を用いて \(r\sin{\theta_1}\) と表せる。
よって、この方向の底面の辺の長さは \(r\sin{\theta_1}\cdot d\theta_2\) となる。
以上より、極座標における微小領域の体積は
$$dr\cdot rd\theta_1 \cdot r\sin{\theta_1}d\theta_2 = r^2\sin{\theta_1}drd\theta_1d\theta_2$$
と表せる。
したがって
$$dx_1dx_2dx_3 = r^2\sin{\theta_1}drd\theta_1d\theta_2$$
が成り立つ。
M次元直交座標→M次元極座標の変換
3次元直交座標→3次元極座標の変換において、微小領域の底面の各辺の長さは
$$\theta_1方向の辺 = rd\theta_1$$
$$\theta_2方向の辺 = r\sin{\theta_1}d\theta_2$$
と表すことができた。
この議論を \(M\) 次元極座標に適用すると、 \(M\) 次元極座標における微小領域の底面の各辺の長さは
$$\theta_1方向の辺 = rd\theta_1$$
$$\theta_2方向の辺 = r\sin{\theta_1}d\theta_2$$
$$\theta_3方向の辺 = r\sin{\theta_1}\sin{\theta_2}d\theta_3$$
$$\vdots$$
$$\theta_{M-1}方向の辺 = r\sin{\theta_1}\sin{\theta_2}\cdots\sin{\theta_{M-2}}d\theta_{M-1}$$
と表すことができる。
以上より、微小領域の体積は
$$r^{M-1}(\prod_{i=1}^{M-1}\sin{\theta_i}^{M-i-1})drd\theta_1d\theta_2 \cdots d\theta_{M-1} \tag{2}$$
で表される。
したがって
$$dx_1dx_2dx_3 \cdots dx_M = r^{M-1}(\prod_{i=1}^{M-1}\sin{\theta_i}^{M-i-1})drd\theta_1d\theta_2 \cdots d\theta_{M-1} \tag{3}$$
と変換できることがわかる。
M次元単位球の表面積
単位球面上の面素
\(dr\) は微小領域の高さに相当するため、 \((2)\) 式から \(dr\) を除いた
$$r^{M-1}(\prod_{i=1}^{M-1}\sin{\theta_i}^{M-i-1})d\theta_1d\theta_2 \cdots d\theta_{M-1}$$
は微小領域の底面の面積となる。
また、 \(r=1\) の場合を考えると
$$(\prod_{i=1}^{M-1}\sin{\theta_i}^{M-i-1})d\theta_1d\theta_2 \cdots d\theta_{M-1}$$
となるが、これは \(M\) 次元空間の単位球面における微小面積となる。
これを \(M\) 次元単位球面上の面素と呼び、 \(dS_{1,M}\) とおいて \((3)\) 式に代入すると
$$dx_1dx_2dx_3 \cdots dx_M = r^{M-1}drdS_{1,M} \tag{4}$$
が成り立つ。
表面積の計算
さて、ここまで長いこと座標変換について考えてきたが、この記事の主題は標準正規分布の規格化条件からM次元単位球の表面積を求めることであるので、そろそろ冒頭の規格化条件の式に戻る。
\((1)\) 式に \((4)\) 式の結果を代入して変数変換を行うと
$$\int_{R}r^{M-1}(2\pi)^{-\frac{M}{2}}\exp(-\frac{r^2}{2})drdS_{1,M} = 1$$
となる(ただし、Rは適当な積分区間を表す)が、被積分関数は \(r\) のみに依存するため、 \(r\) についての積分を \(S_{1,M}\) についての積分とは独立に行うことができる。
すなわち \(r\) の積分区間は \([0,\infty)\) であることを考慮すると
$$\int_{0}^{\infty}r^{M-1}(2\pi)^{-\frac{M}{2}}\exp(-\frac{r^2}{2})dr\int dS_{1,M} = 1$$
$$\int dS_{1,M} = \{\int_{0}^{\infty}r^{M-1}(2\pi)^{-\frac{M}{2}}\exp(-\frac{r^2}{2})dr\}^{-1}$$
$$\int dS_{1,M} = 2\pi^{\frac{M}{2}}(\int_{0}^{\infty}(\frac{r^2}{2})^{\frac{M}{2}-1}\exp(-\frac{r^2}{2})dr)^{-1}$$
となる。
ここで、左辺は単位球面上の微小領域を全区間で積分したものを表すため、これはすなわち、単位球の表面積 \(S_{1,M}\) に等しい。
また、右辺に以下の式で定義されるガンマ関数
$$\Gamma(z) = \int_{0}^{\infty}t^{z-1}e^{-t}dt$$
を代入すると
$$S_{1,M} = \frac{2\pi^{\frac{M}{2}}}{\Gamma(\frac{M}{2})}$$
より、 \(M\) 次元空間における単位球の表面積の公式が得られる。
なお、単位球ではなく半径 \(r\) の場合の表面積は
$$S_{1,M}(r) = \frac{2\pi^{\frac{M}{2}}r^{M-1}}{\Gamma(\frac{M}{2})}$$
となる。
補足
この記事では、 \(M\) 次元空間における直交座標→極座標の変換の導出をやや雑な帰納的手法に基づいて行ったが、より正確な座標変換公式の証明については

が詳しい。
また、この記事で使用した画像を作成するためのPythonコードは


を参照のこと。
コメント