方位分布と対称性

 前ページでは、恒等変換以外の対称性を有しない物体に対して、ランダムな方位状態における角度差の分布を考えました。ここでは実際の結晶のように回転や鏡映などの対象を有する物体を対象に考察を進めます。

表記の意味

 話を始める前にいくつか標準的な数学表記の定義をしておきます。

\(\mathbb{R}^n\) \(n\) 次元実数空間のことです。
\(O(n)\)\(n\)行\(n\)列の正方実数行列 \(M\) であって、\(M^{tr}M=I\) を満たすもの全体を指します。なお \(M^{tr}\)は\(M\)の転置行列、\(I\)は単位行列です。長さと角度を保つ変換の全てであり、群の要件をすべて満たし、\(\mathbb{R}^n\) 空間の回転 ・回反・鏡映・対称心操作が含まれます1。回転の場合は行列式 (determinant)が1, それ以外は-1となります。
\(SO(n)\)\(O(n)\)の中で行列式が1である集合です。すなわち \(\mathbb{R}^n\) 空間の回転の全てです。こちらも群であり、\(O(n)\)の部分群となります。\(S\)はSpecialの略です。
\(S^n\)\(n\) 次元単位球面のことで、\(S^n = \{ x \in \mathbb{R}^{n+1}| \ \|x\|=1 \}\)と定義されます。\(n+1\) 次元において原点からの距離が1である点の全体です。普通の(3次元の)単位球の表面は\(S^3\)ではなく\(S^2\)であることにご注意ください。肩の数字は球体を表現する次元ではなく球の表面の次元です2

ロドリゲス空間

 3次元ロドリゲス (Rodrigues) 空間 (以降は単にロドリゲス空間) とは、回転軸の方向と回転量を表現する空間です。ノルムは\(\textbf{r}=(x,y,z)\) として \( \|\textbf{r}\| = \sqrt{x^2+y^2+z^2}\) と定義します。ロドリゲス空間の座標 \((x,y,z)\) は

を意味します。 例えば \( (1,0,0) \) という座標は 「X軸を回転軸として90度回転」、 \( (1,1,1) \) という座標は「X,Y,Zの合成ベクトルを回転軸として120度 (=\(2\arctan(\sqrt{3})\)) 回転 」という意味になります。ロドリゲス座標 (\(\textbf{r}\) とする)と前ページで説明した単位四元数 (\(q\) とする)とは、$$
\textbf{r}=(x,y,z) \quad \leftrightarrow \quad q = \frac{1}{\sqrt{1+x^2+y^2+z^2}}( 1 ,x ,y, z ) =\frac{1}{\sqrt{1+\|r\|^2}}( 1 ,\textbf{r} ) $$あるいは$$
\textbf{r}=\tan\frac{\theta}{2}(x, y, z) \quad \leftrightarrow \quad q = (\cos\frac{\theta}{2}, x\sin\frac{\theta}{2},y\sin\frac{\theta}{2},z\sin\frac{\theta}{2}) =\cos\frac{\theta}{2}(1, \textbf{r}) \quad \textrm{where}\ x^2+y^2+z^2=1 $$あるいは$$
\textbf{r}=\frac{\textbf{v}}{s} \quad \leftrightarrow \quad q=(s,\textbf{v}) \quad \textrm{where}\ s^2+\|\textbf{v}\|^2=1 $$
という見通しの良い関係になります。

ロドリゲス空間における \(SO(3)\) の分布

 ロドリゲス空間は、単位四元数と同じく、\(SO(3)\) を表現する空間なのですが、重要な注意点があります。それは、\(SO(3)\) がロドリゲス空間中に一様に分布していない3ということです。このことは、180度回転という状態がロドリゲス空間では無限遠の点に対応する、ということからも容易に理解できると思います。それでは\(SO(3)\) はロドリゲス空間にどのような密度で分布しているでしょうか。結論から言うと、これは四元数\(S^3\)の一様分布からロドリゲス空間への写像に関するヤコビアンを算出するという問題です。詳しい説明は割愛します4が、この密度関数 \(P(\textbf{r})\) の形式は $$ P(\textbf{r}) \propto \frac{1}{(1+ \|\textbf{r}\|^2)^2}$$となります。なお、規格化は以降の議論に必要ないので、とりあえず比例関係のままで話を進めます。ロドリゲス空間の原点から \( \|\textbf{r}\|\) 離れた点集合が作る球の面積は \(4\pi\|\textbf{r}\|^2\) であり、この球面上に存在する \(SO(3)\) 密度は \((1+ \|\textbf{r}\|^2)^{-2}\)に比例しますから、方位差分布関数 \(F\) は$$F(\textbf{r}) \propto \frac{\|\textbf{r}\|^2}{(1+ \|\textbf{r}\|^2)^2}$$ということになります。\( \|\textbf{r}\|=\tan(\theta/2)\) を代入し\(F(\theta)\)として書き直すと$$
\frac{d\|\textbf{r}\|}{d\theta}=\frac{1}{2}(1+\|\textbf{r}\|^2)\\
F(\theta) = F(\textbf{r})\frac{d\|r\|}{d\theta} \propto \frac{\|\textbf{r}\|^2}{1+ \|\textbf{r}\|^2}=\frac{\tan^2\frac{\theta}{2}}{1+ \tan^2\frac{\theta}{2}}=\sin^2\frac{\theta}{2} = \frac{1-\cos\theta}{2}$$となり、前のページで示した式と(規格化すれば)一致します。

ロドリゲス空間における演算

 ロドリゲス空間における二つの座標の乗算は回転の合成に対応します。ロドリゲス空間上の座標 \(\textbf{r}_1, \textbf{r}_2\)を$$\textbf{r}_1=(x_1,y_1,z_1),\quad \textbf{r}_2=(x_2,y_2,z_2)$$のように定義したとき、それらに対応する四元数 \(q_1, q_2\)は$$
q_1=\frac{1}{\sqrt{1+\|\textbf{r}_1\|^2}}(1,\,\textbf{r}_1),\qquad q_2=\frac{1}{\sqrt{1+\|\textbf{r}_2\|^2}}(1,\,\textbf{r}_2) $$ となります。四元数の積 (\(q=q_1q_2\)) は前ページで説明した通り $$
q=q_1q_2=\frac{1}{\sqrt{(1+\|\textbf{r}_1\|^2)(1+\|\textbf{r}_2\|^2)}} \left( 1-\textbf{r}_1\cdot \textbf{r}_2,\ \textbf{r}_1+\textbf{r}_2+\textbf{r}_1\times \textbf{r}_2 \right) \\ = \frac{1}{(1-\textbf{r}_1\cdot \textbf{r}_2) \sqrt{(1+\|\textbf{r}_1\|^2)(1+\|\textbf{r}_2\|^2)}} (1, \ \frac{\textbf{r}_1+\textbf{r}_2+\textbf{r}_1\times \textbf{r}_2}{1-\textbf{r}_1\cdot \textbf{r}_2})$$ですから、回転の合成によって得られるロドリゲス座標 \(\textbf{r}\) は$$
\textbf{r} = \textbf{r}_1\otimes \textbf{r}_2 = \frac{\textbf{r}_1+\textbf{r}_2+\textbf{r}_1\times \textbf{r}_2}{1-\textbf{r}_1\cdot \textbf{r}_2}$$と求まります。なお、ロドリゲス空間における乗算の記号を \(\otimes\) と表記しました。この式から明らかなように、\(1-\textbf{r}_1\cdot \textbf{r}_2=0\) のとき、合成回転の四元数のスカラー部が 0 になり、回転角が 180 度になります。このときロドリゲス座標は \( \|r\|\to\infty\) に飛びます。

 逆元については、四元数では共役 \(q^{-1}=q^*\) に対応するので、ロドリゲス空間では単に$$\textbf{r}^{-1}=-\textbf{r}$$となります。回転量 (原点からの距離に対応)は同じで回転軸が正反対になるということです。この結果、二つのロドリゲス座標 \(\textbf{r}_1,\textbf{r}_2\) の方位差 (ミスオリエンテーション) \(\Delta\)は$$
\Delta \textbf{r} = \textbf{r}_1^{-1}\otimes \textbf{r}_2 = (-\textbf{r}_1)\otimes \textbf{r}_2 = \frac{-\textbf{r}_1+\textbf{r}_2-\textbf{r}_2\times \textbf{r}_1}{1+\textbf{r}_1\cdot \textbf{r}_2}$$と書けます。

対称要素によるロドリゲス空間の押し込み

 さて、いよいよ対称性を考慮した方位差分布について考えていきましょう。まず最も簡単な対称要素として、2回回転を考えます。すなわち、「2回回転要素を持つ物体が完全にランダムな方位で大量に分布しているとき、2体間の方位差の分布関数はどのような形になるか?」という問題です。これは、たくさんの物体から一つを選び、それを基準として他の物体との方位差分布を求めることと等価です。また、基準物体の2回回転軸をロドリゲス空間のどの向きと一致させても一般性を失いません。したがってこの問題は「ロドリゲス空間のX軸に2回回転を作用させたとき、\(SO(3)\) の分布はどのようになるか」 と言い換えることができます。

 ロドリゲス空間におけるX軸に沿った2回回転 (180度回転) \(\textbf{C}_2\) は$$\textbf{C}_2= \lim_{A \to \infty}(A, 0,0)$$ と表現できます。この2回回転軸によって、ロドリゲス空間中のある点 \(\textbf{r} =(x,y,z)\) が別の点 \(\textbf{r}’=(x’,y’,z’)\) に写されるとしましょう。回転の合成の式を適用すると \(\textbf{r}’\) は以下のように表せます。$$
\textbf{r}’ = (x’,y’,z’) = \textbf{C}_2 \otimes \textbf{r} = (-\frac{1}{x},-\frac{z}{x},\frac{y}{x},)
$$ この式を見ると、\(|x| \ge 1\) のとき、\(|x’| \le 1\) となることがわかります5。つまり、\(|x| \ge 1\) の領域は対称操作によって \( |x| \le 1\) の領域に押し込まれるため、方位差分布関数を求めるに際に考慮する必要がないのです。

 さて、\( |x| \le 1\) の領域だけを考えればよいことはわかりましたが、 \(|x| \ge 1\) から押し込まれた点が \(|x’| \le 1\) 領域の方位分布関数を乱してしまうかもしれません。一応これもチェックしておきましょう。すなわち、 \(\textbf{r}=(x,y,z)\) の周囲の微小体積 \(dx, dy,dz\) がこの変換によってどう変化するかということです。

点群222の場合

r=0.8

r=1.2

r=1.6

これらの図6のような場合分けで考える必要があります。


  1. https://yseto.net/crystallography/intro/intro-20もご覧ください。 ↩︎
  2. \(S^1\) は円周、\(S^2\) は球面、\(S^3\)は球体です。 ↩︎
  3. 正確に言うと、ハール測度 (Haar measure)が一様でないということです。前のページで説明したとおり、\(SO(3)\) は単位四元数として \(S^3\)上に一様分布します。一様分布を表現するにはどうしても4次元が必要なのです。 ↩︎
  4. 直観的には \( r=(x,y,z) \ \leftrightarrow \ q = (1+\|r\|^2)^{-\frac{1}{2}}( 1 ,x ,y, z )\) という関係式が示す通り、ロドリゲス空間上のある座標の近辺が占める体積は \(S^3\) (Haar測度一様) 上ではスケール因子\((1+\|r\|^2)^{-\frac{1}{2}}\) の4乗 (4次元だから)の体積に変化するということです。 ↩︎
  5. 等号が成り立つのは \(x=1\) の場合のみ。 ↩︎
  6. Mathematicaで、以下のコマンドを実行すると同じ絵が描けます。
    ———-ここから———-
    r = 1.5;
    sphere = ParametricPlot3D[ r {Sin[th] Cos[ph], Sin[th] Sin[ph], Cos[th]}, {th, 0, Pi}, {ph, 0, 2 Pi}, Mesh -> None, ColorFunction -> Function[{x, y, z, th, ph}, With[{v = Abs[{x, y, z}]}, Which[Max[v] < 1, Red, Sort[v][[-2]] > 1, Yellow, True, Blue]]], ColorFunctionScaling -> False, PlotPoints -> {1280, 1280}, MaxRecursion -> 2, PerformanceGoal -> “Quality”, PlotRange -> All];
    cube = Graphics3D[{FaceForm[Directive[Green, Opacity[0.15]]], EdgeForm[{Thick, Green}], Cuboid[{-1, -1, -1}, {1, 1, 1}]}];
    Show[sphere, cube, PlotRange -> All, Boxed -> False, Axes -> False, ImageSize -> 400]
    ———-ここまで———-
    ↩︎
contents