前ページでは、ロドリゲス空間における \(SO(3)\) の密度分布について、結論だけを述べました。ここではその背景にあるヤコビアン (Jacobian) という考え方を説明します。ヤコビアンは、ひとことで言えば「座標変換によって、微小な長さ・面積・体積がどのくらい拡大/縮小されるか」を表す量です。1変数の微分係数 \(dx/dt\) の多変数版だと思うと見通しがよくなります。

行列式とは

 ヤコビアンの説明の前に、まずは行列式の意味を確認しておきましょう (必要のない方は飛ばしてください)。行列式 (determinant) とは、正方行列に対して定義されるスカラー量です。ここでは \(3 \times 3\) 行列$$
M=\begin{pmatrix} a_x & b_x & c_x\\ a_y & b_y & c_y\\ a_z & b_z & c_z\end{pmatrix}
=\left(\begin{array}{c|c|c} & & \\ \mathbf{a} & \mathbf{b} & \mathbf{c}\\ & & \end{array}\right)
$$ を考えます。\(\mathbf{a} , \mathbf{b} , \mathbf{c}\) は3次の列ベクトルですが、以降の式中に現れるときは単なる3次元ベクトルだと思ってください。この行列の行列式は $$\det M
=a_x ( b_y c_z-c_y b_z)-b_x (a_y c_z-c_y a_z )+c_x(a_y b_z -b_y a_z )
= \mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) = \mathbf{b} \cdot (\mathbf{c} \times \mathbf{a}) = \mathbf{c} \cdot (\mathbf{a} \times \mathbf{b})
$$で与えられます1。もちろん \(\cdot\) は内積、\(\times\) は外積です。この量が示す意味を考えてみましょう。まず、3次元における3本のベクトル \( \mathbf{u}, \mathbf{v}, \mathbf{w}\) があったとき、それらが張る平行六面体の体積 \(V\) は$$
V=\mathbf{u} \cdot (\mathbf{v} \times \mathbf{w})
$$となります2。次に \( \mathbf{u}, \mathbf{v}, \mathbf{w}\) が線形変換\(M\)によって写されたベクトルを \( \mathbf{u}’,\mathbf{v}’,\mathbf{w}’\) とすると、 それらが張る平行六面体の体積\(V’\)は$$
V’=\mathbf{u}’ \cdot (\mathbf{v}’ \times \mathbf{w}’)
= [\mathbf{u}\cdot (\mathbf{v} \times \mathbf{w}) ][\mathbf{a} \cdot ( \mathbf{b} \times \mathbf{c}) ]
= V \det M
$$という関係が成立します3。すなわち、行列式 \(\det M\) という量は、線形変換 \(M\) を施す前後の体積の変化率を表しているのです。なお「体積」の部分は行列の次元が1ならば「長さ」、2ならば「面積」、3ならば「体積」、4以上ならば「超体積」と読み替えてください。

 なお、\(\det M\) の符号には向きに関する情報が入っています。

向きを考えず、通常の意味での体積 (0より大きい)を考える場合は、行列式の絶対値 \(|\det M|\) 用いると便利です。回転行列 \(R\) が \( \det R = 1 \) の性質を持つことは、「長さや角度を保つだけでなく、向きも保つ」ことを意味しています。一方、鏡映、対称心、回反のような変換は \( \det R = -1 \) になります。

グラム行列とは

 グラム (Gram) 行列は、\(m \times n\) 行列 \(M\) とその共役転置行列4 \(M^*\) として$$G=M^* M$$のように定義されます。\(G\) は \(G=M^* M=(M M^*)^*\) なのでエルミート (Hermitian) 行列5 です。どんな行列でも正方に変換できるため、様々な場面で活躍する考え方です。

 グラム行列の使いどころを見ていきましょう。例えば3次元空間に次のような2つのベクトル$$
\mathbf{u} = (u_x, u_y, u_z),\quad \mathbf{v} =(v_x,v_y,v_z)
$$ があり、これらを列方向に並べて \(3 \times 2\) 行列 $$
M = \left(\begin{array}{c|c} u_x& v_x\\ u_y & v_y\\ u_z& v_z\end{array}\right)=
\left(\begin{array}{c|c} & \\ \mathbf{u} & \mathbf{v}\\ & \end{array}\right)
$$\(\)
を定義します。これのグラム行列は$$
G=M^* M = \left(\begin{array}{ccc} & \mathbf{u} & \\ \hline & \mathbf{v} & \end{array}\right) \left(\begin{array}{c|c} & \\ \mathbf{u} & \mathbf{v}\\ & \end{array}\right)
=\left(\begin{array}{cc} \mathbf{u}^2 & \mathbf{u}\mathbf{v} \\ \mathbf{u}\mathbf{v}&\mathbf{v}^2 \end{array}\right)
$$となり、さらにその行列式は、$$\begin{array}{l}
\det G = \mathbf{u}^2\ \mathbf{v}^2 – (\mathbf{u}\mathbf{v})^2 \\
\qquad = (u_x^2+ u_y^2+ u_z^2)(v_x^2+ v_y^2+ v_z^2)-(u_xv_x+ u_y v_y+ u_z v_z)^2 \\
\qquad = (u_xv_y-u_yv_z)^2 + (u_yv_z -u_zv_y)^2 + (u_zv_x+u_xv_z)^2 \\
\qquad = (\mathbf{u} \times \mathbf{v} )^2
\end{array}$$という美しい関係が現れます。つまり、3次元空間中の2つのベクトルから生成したグラム行列の行列式は、その2つのベクトルが張る平行四辺形の面積の2乗に対応します。さらに一般化して表現すると、次のようになります。\(m\) 次元空間から \(n\, (\le m)\) 個のベクトルを選び、それらを列とする \(m \times n\) 行列を \(M\)、さらにそのグラム行列を \(G=M^*M\) とすると、\(\det G\) は \(n\) 個のベクトルが張る体積の2乗となる。なお「体積」の部分は、\(n\) が1ならば「長さ」、2ならば「面積」、3ならば「体積」、4以上ならば「超体積」と読み替えてください。

ヤコビアンとは

 3変数の一般的な (線形とは限らない) 座標変換 \( (u,v,w)=f(x,y,z) \)を考えます。すなわち$$u=u(x,y,z),\qquad v=v(x,y,z),\qquad w=w(x,y,z)$$です。このとき、各成分の偏微分を並べた \(3\times 3\) 行列 $$J=\frac{\partial(u,v,w)}{\partial(x,y,z)}=
\large{ \begin{pmatrix}
\frac{\partial u}{\partial x} & \frac{\partial u}{\partial y} & \frac{\partial u}{\partial z}\\
\frac{\partial v}{\partial x} & \frac{\partial v}{\partial y} & \frac{\partial v}{\partial z}\\
\frac{\partial w}{\partial x} & \frac{\partial w}{\partial y} & \frac{\partial w}{\partial z}
\end{pmatrix}}
$$をヤコビ行列 (Jacobian matrix) と呼び、さらにその行列式 \(\det J\) をヤコビアン (Jacobian determinant) と呼びます。ヤコビ行列は、点 \((x,y,z)\) の近傍で座標変換を一次近似したときの線形変換の行列です。したがって\((x,y,z)\) 近傍の微小体積は$$
du\,dv\,dw=\left|
\det\left(\frac{\partial(u,v,w)}{\partial(x,y,z)}\right)
\right| dx\,dy\,dz $$ のように変換されます(体積は非負なので絶対値を付けています)。つまりヤコビアンは点 \((x,y,z)\) が \((u,v,w)\) に写った際の、その付近の体積の変化率です。確率密度の変換でもまったく同じ考え方が使えます。例えば \((x,y,z)\) 空間の密度を \(p(x,y,z)\)、\((u,v,w)\) 空間の密度を \(p'(u,v,w)\) とすれば、
$$ p(x,y,z)\,dx\,dy\,dz = p'(u,v,w)\,du\,dv\,dw $$ より、$$
p(x,y,z)= p'(f(x,y,z)) \left| \det\left(\frac{\partial(u,v,w)}{\partial(x,y,z)}\right) \right|
$$となります。前ページで扱った「\(S^3\) 上では一様だが、ロドリゲス空間では一様でない」という話は、まさにこの密度変換の問題です。

極座標のヤコビアン

 3次元球座標を考えます。球面の幾何学ページと同様に余緯度を \(\theta\)、経度を \(\varphi\) とし、中心からの距離は \(r\) として$$
x=r \sin\theta\cos\varphi,\qquad
y=r \sin\theta\sin\varphi,\qquad
z=r \cos\theta
$$と書きます。これを座標変換 \((r,\theta,\varphi)=f(x,y,z)\)だと考えれば、そのヤコビ行列は$$
J=\frac{\partial(x,y,z)}{\partial(r,\theta,\varphi)}=\begin{pmatrix}
\sin\theta\cos\varphi & r\cos\theta\cos\varphi & -r\sin\theta\sin\varphi\\
\sin\theta\sin\varphi & r\cos\theta\sin\varphi & r\sin\theta\cos\varphi\\
\cos\theta & -r\sin\theta & 0 \end{pmatrix}
$$であり、$$
\left| \det J \right| = r^2\sin\theta
$$となります。したがって体積要素は$$
dx\,dy\,dz = r^2\sin\theta\,dr\,d\theta\,d\varphi
$$です。さらに、\(r=1\) の単位球面上では面積要素が$$
dS=\sin\theta\,d\theta\,d\varphi
$$となります。球面の幾何学ページの球面キャップや球面三角形の面積積分で \(\sin\theta\) が現れたのは、このヤコビアンに対応しています。

単位四元数とロドリゲス空間のヤコビアン

 ここからが本題です。ロドリゲス座標 \(\mathbf{r}=(x,y,z)\) から単位四元数 \(q=(s,\mathbf{v}) =(s,v_x,v_y,v_z) \)への写像を考えます。当然、\(s,v_x,v_y,v_z\) は \((x,y,z)\) の関数です。 \(x^2+y^2+z^2 = \|\mathbf{r}\|^2\) として、$$
s = \frac{1}{\sqrt{1+\|\mathbf{r}\|^2}} , \quad v_x=s\, x, \quad v_y=s\, y, \quad v_z=s\, z
$$という関係になります (詳しくはこちらをご覧ください)。この写像は \(\mathbb{R}^3 \to \mathbb{R}^4\) であり、しかもその像は \(S^3\) 上に制限されています。したがって、単純に \(3\times 3\) のヤコビアンをそのまま使うことができません。こんな時、グラム行列が役に立ちます。

 まず、以下のような \(4\times 3\) 行列を \(J\) とします。すなわち$$J=\Large{\begin{pmatrix}
\frac{\partial s}{\partial x} & \frac{\partial s}{\partial y} & \frac{\partial s}{\partial z}\\
\frac{\partial v_x}{\partial x} & \frac{\partial v_x}{\partial y} & \frac{\partial v_x}{\partial z}\\
\frac{\partial v_y}{\partial x} & \frac{\partial v_y}{\partial y} & \frac{\partial v_y}{\partial z}\\
\frac{\partial v_z}{\partial x} & \frac{\partial v_z}{\partial y} & \frac{\partial v_z}{\partial z}
\end{pmatrix}}
$$この行列は、ロドリゲス空間上の点 \((x,y,z)\) から微小量 \((dx,dy,dz)\) だけずれた点を \(S^3\) に写したとき、そのずれ量はどのように変化するか、を意味しています。要するに \((x,y,z)\) 近辺で一次近似した線形変換行列です。一方、グラム行列の説明のところで述べたように、4次元空間から3つのベクトルを選びそれらを列として並べた行列とみなすこともできます。後者の考え方に従えば、それら3つのベクトルが張る体積は $$
\sqrt{\det(J^*J)}
$$で与えられ、この量がロドリゲス空間の\((x,y,z)\) 近辺における微小体積 \(d^3\mathbf{r}=dx\ dy\ dz\) が \(S^3\) 上では何倍に変化するか (つまり変化率) を表します。

 それでは実際に \(\det(J^*J)\) を計算していきしょう。まず\(J\)の各成分の偏微分を解いてみると$$
J= \begin{pmatrix}
-s^3 x & -s^3 y & -s^3 z\\ s-s^3x^2 & -s^3 xy & -s^3zx\\ -s^3xy&s-s^3y^2 & -s^3yz\\ -s^3zx & -s^3yz & s-s^3z^2
\end{pmatrix}
=s^3 \begin{pmatrix}
-x & -y & -z\\ 1+y^2+z^2 & -xy & -zx\\ -xy&1+z^2+x^2 & -yz\\ -zx & -yz & 1+x^2+y^2
\end{pmatrix}
= s^3 \left(\begin{array}{c|c|c} & & \\ \mathbf{q}_x & \mathbf{q}_y & \mathbf{q}_z\\ & &
\end{array}\right)
$$となります。最後に定義した \(\mathbf{q}_x , \mathbf{q}_y , \mathbf{q}_z \) について、$$
\mathbf{q}_x \cdot \mathbf{q}_x = \frac{1+y^2+z^2}{s^2}, \quad
\mathbf{q}_x \cdot \mathbf{q}_y = -\frac{xy}{s^2}
$$などの関係が容易に求まるので、\(J\)のグラム行列 \(G\) は$$
G=J^*J = s^6 \left(\begin{array}{ccc} & \mathbf{q}_x & \\ \hline & \mathbf{q}_y & \\ \hline &\mathbf{q}_z &
\end{array}\right) \left(\begin{array}{c|c|c} & & \\ \mathbf{q}_x & \mathbf{q}_y & \mathbf{q}_z\\ & &
\end{array}\right)\\
=s^4 \begin{pmatrix}
1+y^2+z^2 & -xy & -zx\\ -xy & 1+z^2+x^2 & -yz \\ -zx & -yz & 1+x^2+y^2
\end{pmatrix}
$$となります。結局 \(J\)の下の部分と同じ形になるんですね6。このグラム行列 \(G\) の行列式を求めたいのですが \(G\) は $$
G = s^4[ (1+x^2+y^2+z^2) I – \mathbf{r}\ \mathbf{r}^*)] =s^4[ (1+\|r\|^2) I – \mathbf{r}\ \mathbf{r}^*)] = s^2 ( I – s^2\mathbf{r}\ \mathbf{r}^*)
$$のように整理できる7 (ただし、\(I\) は \(3 \times 3\) 単位行列、\(\mathbf{r}=(x,y,z)\) は列ベクトル、\(\mathbf{r}^*\) は行ベクトル ) ので、行列式補題 (matrix determinant lemma) と呼ばれる公式8を使って、$$
\det G = \det[s^2 ( I – s^2\mathbf{r}\ \mathbf{r}^*)] = (s^2)^3 \det(I) (1-s^2\mathbf{r}^* I \ \mathbf{r}) = s^8
$$と求まります。なんと素晴らしいことに、きわめて簡単な答えとなりました。つまり、ロドリゲス空間における微小体積 \(d^3 \mathbf{r} = dx\ dy\ dz\) は\(S^3\) 上では $$
\sqrt{\det G}=s^4=\frac{1}{(1+\|\mathbf{r}\|^2)^2}
$$ に変化するわけです。 \(S^3\) 上の一様体積要素 (すなわち \(SO(3)\) の Haar 測度に対応する体積要素) \(d\mu\) は、ロドリゲス座標 \(\mathbf{r}\) で書くと$$
d\mu \propto \frac{1}{(1+\|\mathbf{r}\|^2)^2}\,d^3\mathbf{r}
$$となります。よって密度関数も$$
P(\mathbf{r}) \propto \frac{1}{(1+\|\mathbf{r}\|^2)^2}
$$となり、方位分布と対称性のページで述べた式が得られます。


脚注

  1. 一般に、\(n \times n\)の行列\(A\) (成分を \(a_{ij}\)とする) の行列式は、$$
    \det A=\sum_{\sigma\in S_n} s(\sigma)\prod_{i=1}^{n} a_{i,\sigma(i)}
    $$ただし、\(S_n\) は\(\{1,2,..,n\}\) を並び替えた全ての集合 (\(n!\) 個)、\(\sigma\) はその中のひとつ、\(s(\sigma\)) はその並び替えが偶置換ならば1, 奇置換ならば-1。 ↩︎
  2. \(\mathbf{v} \times \mathbf{w}\) の大きさは \(\mathbf{b}\) と \(\mathbf{c}\) が作る平行四辺形の面積に対応し、向きは平行四辺形の法線方向に一致します。平行四辺形の法線方向の単位ベクトルと \(\mathbf{u}\) の内積は、平行四辺形を底面と見たときの平行六面体の高さに相当します。従って、体積 \(V= \mathbf{u} \cdot (\mathbf{v} \times \mathbf{w})\)が得られます。 ↩︎
  3. 丁寧に展開します。変換前の3本のベクトル\(\mathbf{u},\mathbf{v},\mathbf{w}\)を$$
    \mathbf{u} = (u_x, u_y, u_z),\quad \mathbf{v} =(v_x,v_y,v_z),\quad \mathbf{w}=(w_x,w_y,w_z)
    $$とすると、変換後のベクトル \( \mathbf{u}’,\mathbf{v}’,\mathbf{w}’\) は$$
    \mathbf{u}’ = u_x \mathbf{a} +u_y \mathbf{b} +u_z \mathbf{c}, \quad
    \mathbf{v}’ = v_x \mathbf{a} +v_y \mathbf{b} +v_z \mathbf{c}, \quad
    \mathbf{w}’ = w_x \mathbf{a} +w_y \mathbf{b} +w_z \mathbf{c}
    $$となり、それらが張る平行六面体の体積\(V’\)は、\(\mathbf{a}\times \mathbf{a}=0,\ \mathbf{a}\times \mathbf{b}=-\mathbf{b}\times \mathbf{a},\ \mathbf{a} \cdot (\mathbf{a}\times \mathbf{b})=0\) などの関係を利用して、$$\begin{array}{l}
    V’=\mathbf{u}’ \cdot (\mathbf{v}’ \times \mathbf{w}’)\\
    \qquad = (u_x \mathbf{a} +u_y \mathbf{b} +u_z \mathbf{c}) \cdot
    [ (v_x \mathbf{a} +v_y \mathbf{b} +v_z \mathbf{c}) \times (w_x \mathbf{a} +w_y \mathbf{b} +w_z \mathbf{c} ) ]\\
    \qquad =(u_x \mathbf{a} +u_y \mathbf{b} +u_z \mathbf{c}) \cdot
    [ (w_y v_x -w_x v_y) \mathbf{a} \times \mathbf{b} + (v_y w_z -v_z w_y ) \mathbf{b} \times \mathbf{c} + (v_z w_x -v_x w_z ) \mathbf{c} \times \mathbf{a} ]\\
    \qquad =u_x (v_y w_z -v_z w_y )\ \mathbf{a} \cdot ( \mathbf{b} \times \mathbf{c})
    +u_y (v_z w_x -v_x w_z )\ \mathbf{b} \cdot ( \mathbf{c} \times \mathbf{a})
    +u_z (w_y v_x -w_x v_y)\ \mathbf{c} \cdot ( \mathbf{a} \times \mathbf{b}) \\
    \qquad = [u_x (v_y w_z -v_z w_y ) + u_y (v_z w_x -v_x w_z ) +u_z (v_x w_y -v_y w_x) ]\ \mathbf{a} \cdot ( \mathbf{b} \times \mathbf{c}) \\
    \qquad = [\mathbf{u}\cdot (\mathbf{v} \times \mathbf{w}) ][\mathbf{a} \cdot ( \mathbf{b} \times \mathbf{c}) ]
    \end{array}$$となります。 ↩︎
  4. 全ての成分を共役量に変換し転置を取った行列のことです。実数行列の場合は単なる転置行列です。 ↩︎
  5. 共役転置したものが自分自身と等しい行列のことです。実数行列の場合は対称行列です。 ↩︎
  6. もちろんこれは偶然ではありません。\(J\) から係数 \(s^3\) を取り除いて $$
    J’=\begin{pmatrix}-x & -y & -z\\ 1+y^2+z^2 & -xy & -zx\\ -xy&1+z^2+x^2 & -yz\\ -zx & -yz & 1+x^2+y^2\end{pmatrix}=
    \begin{pmatrix} & -\mathbf{r}^* &\\ \hline & & \\ & \Large{A} & \\ & & \end{pmatrix}
    $$と書き直します。ここで、\(A\) は対称行列で、\(\mathbf{r}=(x,y,z)\) は列ベクトル、\(\mathbf{r}^*\) は行ベクトルです。グラム行列 \(G\)は、$$
    G=J’^* J’ =
    \left( \begin{array}{c|ccc} & & & \\ -\mathbf{r} & & \Large{A} & \\ & & & \end{array}\right)
    \begin{pmatrix} & -\mathbf{r}^* &\\ \hline & & \\ & \Large{A} & \\ & & \end{pmatrix}=
    \mathbf{r}\mathbf{r}^*+A^2
    $$と求まります。また、\(A\) は$$A = (1+x^2+y^2+z^2) I – \mathbf{r}\ \mathbf{r}^*= (1+\|\mathbf{r}\|^2) I – \mathbf{r}\ \mathbf{r}^*$$と書ける (次の脚注を参考) ので、\( (\mathbf{r}\ \mathbf{r}^*)^2 = \mathbf{r}(\mathbf{r}^*\ \mathbf{r}) \mathbf{r}^* = \|\mathbf{r}\|^2 \mathbf{r}\ \mathbf{r}^*\)であることに注意すれば、\(A^2\) は $$
    A^2 = (1+\|\mathbf{r}\|^2)^2 I^2 – 2 (1+\|\mathbf{r}\|^2) I \mathbf{r}\ \mathbf{r}^* + (\mathbf{r}\ \mathbf{r}^*)^2 =
    (1+\|\mathbf{r}\|^2)^2 I -(2+\|\mathbf{r}\|^2)\mathbf{r}\ \mathbf{r}^*
    $$となり、これを\(G\)に代入すれば、$$
    G=\mathbf{r}\mathbf{r}^* + (1+\|\mathbf{r}\|^2)^2 I -(2+\|\mathbf{r}\|^2)\mathbf{r}\ \mathbf{r}^* =
    (1+\|\mathbf{r}\|^2) [(1+\|\mathbf{r}\|^2)I- \mathbf{r}\ \mathbf{r}^*] =(1+\|\mathbf{r}\|^2) A
    $$が得られます。つまり、\(G\) は \(A\) の \(1+\|\mathbf{r}\|^2\) 倍です。 ↩︎
  7. 一般にこのような行列演算を Rank-1 updateといいます。すなわちある正方行列 \(A\) と、二つ列ベクトル \(\mathbf{u}, \mathbf{v}\) に対して、$$
    A’ = A+ \mathbf{u} \mathbf{v}^*
    $$という演算です。\(A’\) が対称行列であり、あるスカラー量\(\sigma\) に対して \(A’ -\sigma I\) のRankが1以下であれば、かならず$$
    A’ = \sigma I+ \mathbf{u} \mathbf{u}^*
    $$という形に変換することができます。 ↩︎
  8. 天下り的ですが、\(A\) を正方行列、\(\mathbf{u},\mathbf{v}\) を同次元の列ベクトルとして、$$
    \det (A+\mathbf{u} \mathbf{v}^*) =(1+\mathbf{v}^* A \mathbf{u} ) \det(A)
    $$という公式があります。これを行列式補題 (matrix determinant lemma) といいます。 ↩︎

contents