倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

単位球体内・球面上の一様分布のモーメント

単位球体内の一様分布を生成する方法を見ていくシリーズ(目次)。 前回までで一般次元の単位球面上・球体内の一様分布を生成する方法を見ました。 ただし、この一様分布がきちんと生成されているかをテストするのはナカナカ大変。 これを行うには、各分布に対するモーメントの値を解析的に求めて、実際の分布から計算した値と比較するのが妥当かと。

ということで、今回は「単位球面上・球体内の一様分布のモーメント」の解析的な定義と値を載せておきます(目次)。 意外と簡単な式 (個人の価値観による?) にまとまります。

単位球面上の一様分布に対するモーメント

{ S_n}{ n } 次元単位球面、{ A_n } をその面積とします:

  { \displaystyle\begin{align*}
    S_n &= \left\{(x_1,\,x_2,\,\cdots,\,x_{n+1}) \in \mathbf{R}^{n+1} \left|\sum_{i=1}^{n+1} x_i^2 = 1\right. \right\} \\
    A_n &= \int_{S_n}d\Omega_n
\end{align*}}

ここで { d\Omega_n }{ S_n } 上の面積要素です。 これは通常の { n+1 } 次元極座標(『極座標のヤコビ行列とヤコビアン : n次元』を参照)では

  { \displaystyle\begin{align*}
    d\Omega_n = \prod_{i=1}^n \sin^{n-i}\theta_i d\theta_i
\end{align*}}

となります。 これは

  { \displaystyle\begin{align*}
    d\Omega_n = \sin^{n-1}\theta_1 d\theta_1 d\Omega_{n-1}
\end{align*}}

を満たします。 ただし、右辺の { d\Omega_{n-1} } に含まれる角度変数 { \theta } の添字は{ 2 \sim n } までです。

単位球面上の期待値とモーメント
{ n+1 } 次元空間上に定義された関数 { f(\textbf{x}) } の、{ S_n } 上の期待値 { \langle f(\textbf{x}) \rangle_{S,n} } を以下で定義します:

  { \displaystyle\begin{align*}
    \langle f(\textbf{x}) \rangle_{S,n}
        = \frac{\displaystyle \int_{S_n}f(\textbf{x})d\Omega_n}{\displaystyle \int_{S_n}d\Omega_n}
        = \frac{1}{A_n} \int_{S_n}f(\textbf{x})d\Omega_n
\end{align*}}

期待値はまぁ平均とも言えるので、面積で割ってることに注意。 これを踏まえて { n } 次元球面上の { N } 次のモーメントを以下で定義します:

  { \displaystyle\begin{align*}
    m_{S,n}^{(N)} = \langle (x_i)^N \rangle_{S,n}
\end{align*}}

{ i = 1,\,2,\,\cdots,\,n+1 } ですが、どれについて計算しても同じ(ハズ)なので任意の値とします。 

単位球面上のモーメントの導出
では、上記のモーメントを頑張って計算してみましょう。 任意であった添字 { i } については1を採用して計算していきます。 { n+1 } 次元極座標

  { \displaystyle\begin{align*}
    x_1 = \cos\theta_1
\end{align*}}

です。 よって

  { \displaystyle\begin{align*}
    m_{S,n}^{(N)}
        &= \langle \cos^N\theta_1 \rangle_{S,n} \\
        &= \frac{\displaystyle \int \cos^N\theta_1 d\Omega_n}{\displaystyle \int d\Omega_n} \\
        &= \frac{\displaystyle \int_0^\pi \sin^{n-1}\theta_1 \cos^N \theta_1 d\theta_1 \int d\Omega_{n-1}}
            {\displaystyle \int_0^\pi \sin^{n-1}\theta_1 d\theta_1 \int d\Omega_{n-1}} &
            (\because d\Omega_n = \sin^{n-1}\theta_1d\theta_1 d\Omega_{n-1}) \\
        &= \frac{\displaystyle \int_0^\pi \sin^{n-1}\theta_1 \cos^N \theta_1 d\theta_1}
            {\displaystyle \int_0^\pi \sin^{n-1}\theta_1 d\theta_1}
\end{align*}}

ここで、{ N } が奇数の場合、分子の被積分関数{ \theta_1 = \frac{\pi}{2} } について奇関数になるので積分は 0 になります。 よってモーメントも0:

  { \displaystyle\begin{align*}
    m_{S,n}^{(2M+1)} &= 0 & (M \in \mathbf{N})
\end{align*}}

以下では { N } を偶数とします。 ベータ関数の表式*1

  { \displaystyle\begin{align*}
    B(x,\,y) = 2\int_0^{\frac{\pi}{2}}\sin^{2x-1}\theta \cos^{2y-1}\theta d\theta
\end{align*}}

を使うと

  { \displaystyle\begin{align*}
    m_{S,n}^{(N)} = \frac{B(\tfrac{n}{2},\,\tfrac{N+1}{2})}{B(\tfrac{n}{2},\,\tfrac{1}{2})}
\end{align*}}

さらにベータ関数とガンマ関数の間の関係*2

  { \displaystyle\begin{align*}
    B(x,\,y) = \frac{\Gamma(x)\Gamma(y)}{\Gamma(x+y)}
\end{align*}}

を使うと

  { \displaystyle\begin{align*}
    m_{S,n}^{(N)}
        &= \frac{\Gamma(\tfrac{n}{2})\Gamma(\tfrac{N+1}{2})}{\Gamma(\tfrac{N+n+1}{2})}
            \frac{\Gamma(\tfrac{n+1}{2})}{\Gamma(\tfrac{n}{2})\Gamma(\tfrac{1}{2})} \\
        &= \frac{\Gamma(\tfrac{N+1}{2})\Gamma(\tfrac{n+1}{2})}{\Gamma(\tfrac{N+n+1}{2})\Gamma(\tfrac{1}{2})} \\
        &= \frac{\Gamma(\tfrac{2M+1}{2})\Gamma(\tfrac{n+1}{2})}{\Gamma(\tfrac{2M+n+1}{2})\Gamma(\tfrac{1}{2})} & (N=2M)
\end{align*}}

ここで『とあるガンマ関数の公式目録』で導いたガンマ関数に関する公式

  { \displaystyle\begin{align*}
     \Gamma(x+1) = x\Gamma(x)
\end{align*}}

を使うと

  { \displaystyle\begin{align*}
    \Gamma(\tfrac{2M+1}{2}) &= \frac{(2M-1)!!}{2^M}\Gamma(\tfrac{1}{2}) &
    \Gamma(\tfrac{2M+n+1}{2}) &= \frac{(2M+n-1)!!}{2^M(n-1)!!}\Gamma(\tfrac{n+1}{2})
\end{align*}}

が示せるので、結局

  { \displaystyle\begin{align*}
    m_{S,n}^{(N)}
        &= \frac{(2M-1)!!(n-1)!!}{(2M+n-1)!!} \\
        &= \frac{(N-1)!!(n-1)!!}{(N+n-1)!!}
\end{align*}}

を得ます。 なんかいい感じにまとまりました。 なんとなく { n }{ N } の間に双対性みたいな性質でもあるんじゃ・・・ まぁそれはともかく、上式で特に { N=2 } とすると分散が得られます:

  { \displaystyle\begin{align*}
    m_{S,n}^{(2)} = \frac{1}{n+1}
\end{align*}}

便利のため、{ n-1 } 次元球面の場合の表式も書き下しておきましょう。 上記の式で { n \rightarrow n-1 } として

  { \displaystyle\begin{align*}
    m_{S,n-1}^{(N)} &= \frac{(N-1)!!(n-2)!!}{(N+n-2)!!} & m_{S,n-1}^{(2)} &= \frac{1}{n}
\end{align*}}

単位球体内の一様分布に対するモーメント

上記と同様のことを、単位球面上ではなく単位球体内でやってみましょう。 { B_n }{ n } 次元球体、{ V_n }{ B_n } の(超)体積とします:

  { \displaystyle\begin{align*}
    B_n &= \left\{(x_1,\,x_2,\,\cdots,\,x_n) \in \mathbf{R}^n \left|\sum_{i=1}^n x_i^2 \le 1\right. \right\} \\
    dV_n &= r^{n-1}drd\Omega_{n-1} \\
    V_n &= \int_{B_n}dV_n
\end{align*}}

{ n } 次元単位球体内で定義された関数 { f(x) } の期待値 { \langle f(\textbf{x})\rangle_{B,n} }を以下で定義します:

  { \displaystyle\begin{align*}
    \langle f(\textbf{x}) \rangle_{B,n} = \frac{1}{V_n} \int_{B_n}f(\textbf{x})dV_n
\end{align*}}

これを踏まえて { n } 次元単位球体内の { N } 次のモーメントを

  { \displaystyle\begin{align*}
    m_{B,n}^{(N)} = \langle (x_i)^N \rangle_{B,n}
\end{align*}}

で定義します。 これまた { i } は(どの値でも同じハズなので)任意とします。

単位球体内のモーメントの導出
ここでも { i=1 } として計算していきましょう。 { n } 次元極座標では

  { \displaystyle\begin{align*}
    x_1 = r\cos\theta_1
\end{align*}}

です。 このとき、定義より

  { \displaystyle\begin{align*}
    m_{B,n}^{(N)}
        &= \langle (r\cos\theta_1)^N \rangle_{B,n} \\
        &= \frac{\displaystyle \int r^N r^{n-1}dr \int \sin^{n-2}\theta_1\cos^N\theta_1 d\theta_1}
            {\displaystyle \int r^{n-1}dr \int \sin^{n-2}\theta_1d\theta_1} \\
        &= \frac{n}{N+n} m_{S,n-1}^{(N)}
\end{align*}}

ここで、上記で導いた { n-1 } 単位球面上のモーメントの表式を使うと

  { \displaystyle\begin{align*}
    m_{B,n}^{(N)}
        &= \frac{n}{N+n}\frac{(N-1)!!(n-2)!!}{(N+n-2)!!} \\
        &= \frac{(N-1)!!n!!}{(N+n)!!}
\end{align*}}

となります。 まとめると

  { \displaystyle\begin{align*}
    m_{B,n}^{(N)} = \frac{n}{N+n} m_{S,n-1}^{(N)} = \frac{(N-1)!!n!!}{(N+n)!!}
\end{align*}}

特に { N=2 } とすると分散が得られます:

  { \displaystyle\begin{align*}
    m_{B,n}^{(2)} = \frac{1}{n+2}
\end{align*}}