無限小回転

続けて、無限小回転を手を動かして確認する。

x 軸周りに x 回す回転 Rx は、
R_x = \begin{pmatrix} \cos x & -\sin x & 0 \\ \sin x & \cos x & 0 \\ 0 & 0 & 1 \end{pmatrix}
と表される。同様に、y 軸、z 軸周りの回転も
R_y = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos y & -\sin y \\ 0 & \sin y & \cos y \end{pmatrix}
R_z = \begin{pmatrix} \cos z & 0 & \sin z \\ 0 & 1 & 0 \\ -\sin z & 0 & \cos z \end{pmatrix}
となる。

これらを続けて行った結果は大変ヤヤコシイので、以降では maxima で計算する。

(%i17) Rx: matrix([cos(x), -sin(x), 0],[sin(x), cos(x), 0], [0, 0, 1]);
                            [ cos(x)  - sin(x)  0 ]
                            [                     ]
(%o17)                      [ sin(x)   cos(x)   0 ]
                            [                     ]
                            [   0        0      1 ]
(%i18) Ry: matrix([1, 0, 0], [0, cos(y), -sin(y)],[0, sin(y), cos(y)]);
                            [ 1    0        0     ]
                            [                     ]
(%o18)                      [ 0  cos(y)  - sin(y) ]
                            [                     ]
                            [ 0  sin(y)   cos(y)  ]
(%i19) Rz: matrix([cos(z), 0, sin(z)], [0, 1, 0],[-sin(z), 0, cos(z)]);
                            [  cos(z)   0  sin(z) ]
                            [                     ]
(%o19)                      [    0      1    0    ]
                            [                     ]
                            [ - sin(z)  0  cos(z) ]
(%i21) Rx.Ry.Rz;
                [ cos(x) cos(z) - sin(x) sin(y) sin(z) ]
                [                                      ]
(%o21)  Col 1 = [ cos(x) sin(y) sin(z) + sin(x) cos(z) ]
                [                                      ]
                [           - cos(y) sin(z)            ]
           [ - sin(x) cos(y) ]         [ cos(x) sin(z) + sin(x) sin(y) cos(z) ]
           [                 ]         [                                      ]
   Col 2 = [  cos(x) cos(y)  ] Col 3 = [ sin(x) sin(z) - cos(x) sin(y) cos(z) ]
           [                 ]         [                                      ]
           [     sin(y)      ]         [            cos(y) cos(z)             ]

ここで、Taylor 展開を思い出すと、
 \sin x = x - \frac{1}{3!}x^3 + O(x^5)
 \cos x = 1 - \frac{1}{2!}x^2 + O(x^4)
であるから、一次の項だけ残すと、
 \sin x \approx x
 \cos x \approx 1
となる。これを代入して、xy なども消すと、
R_x R_y R_z \approx \begin{pmatrix} 1 & -x & z \\ x & 1 & -z \\ -z & y & 1 \end{pmatrix}
となる。これが微小回転の行列表現である。

通常の回転は可換ではないが、無限小回転は可換である。実際に試してみると、

(%i24) Rx.Ry;
                 [ cos(x)  - sin(x) cos(y)   sin(x) sin(y)  ]
                 [                                          ]
(%o24)           [ sin(x)   cos(x) cos(y)   - cos(x) sin(y) ]
                 [                                          ]
                 [   0         sin(y)           cos(y)      ]
(%i25) Ry.Rx;
                  [    cos(x)        - sin(x)        0     ]
                  [                                        ]
(%o25)            [ sin(x) cos(y)  cos(x) cos(y)  - sin(y) ]
                  [                                        ]
                  [ sin(x) sin(y)  cos(x) sin(y)   cos(y)  ]

となるが、どちらも一次の項だけを残せば、
R_x R_y \approx \begin{pmatrix} 1 & -x & 0 \\ x & 1 & -y \\ 0 & y & 1 \end{pmatrix} \approx R_y R_x
となって一致する。

結晶学では、9の自由度を持つ方位行列 A を、A = UB と分離して精密化する際に用いられる。B は基準方位での逆空間の基底ベクトルを並べたもので、計算法は Orthogonalization matrix の導出と、格子定数による偏微分 - biochem_fan's note で述べた。U は B を実際の結晶方位に回転するための行列である。精密化では、U をさらに  U = U_1 U_0 と分離して考える。前者が今回求めた無限小回転の行列であり、3つの自由度 x, y, z (mis-set angle と呼ばれる) を持つ。 U_0 は回転の初期状態であり、単なる定数である。

結局、A の9つの自由度を、6つの格子定数( a, b, c, \alpha, \beta, \gamma) に係る部分 B と、3つの結晶方位(U0 は固定されているので、変数としては x, y, z)にかかわる部分 U に分離したことになる。精密化において必要となるのは A の偏微分だが、関係ない部分はただの定数扱いで消えるので計算が簡潔になる。また、A の成分をそのまま精密化するのと違って、Bravais 格子による制約(a = b など) を簡単に表現できるという利点もある。詳しくは次回。

無限小回転について、詳しくは、「物理のかぎしっぽ」内の記事が丁寧である。また、数学的には Lie 群の生成子としての意味があるが、ここでは触れない。