2次元の回転と複素数の関係 その2


さて、前のページでは2次元空間の微小回転について見てきました。これを任意の角度 \(\theta\) の回転に発展させてみましょう。2次元の回転行列は簡単に書き下すことができるわけですが、3次元空間でも同じように議論できるように、ここでは微小回転から回転行列を導出します。

回転行列を \(R(\theta)\) と書いたとき、そこからさらに \(\Delta\theta\) だけ微小回転した行列 \(R(\theta + \Delta\theta)\) は、
$$ R(\theta + \Delta\theta) \simeq (I + \Delta\theta X)R(\theta) $$
と書けます。
これを少し変形して、\(\Delta\theta\) を無限小の極限まで持っていくと、
$$
\lim_{\Delta\theta \to 0} \frac{R(\theta + \Delta\theta)\ – R(\theta)}{\Delta\theta} \equiv \frac{d R(\theta)}{d\theta} = XR(\theta) \tag{1}
$$
となります。つまり回転行列 \(R(\theta)\) を \(\theta\) で微分すると自分自身に \(X\) が掛かかります。そして、\(R(\theta)\) を \(\theta\) で2回微分すれば \(X^2\) が掛かり、3回微分すれば \(X^3\) が掛かります。

さあ、\(R(\theta)\) を \(\theta = 0\) のまわりでテイラー展開しましょう。
$$ R(\theta) = R(0) + \theta XR(0) + \frac{1}{2}(\theta X)^2R(0) + \cdots + \frac{1}{n!}(\theta X)^nR(0) + \cdots $$
テイラー展開を知らない人は、上の式の両辺を \(\theta\) で微分してみてください。すると式\((1)\)の関係をちゃんと満たしているのがわかりますね。そして \(\theta\) が \(0\) の時にもちゃんと等号が成り立ちます。なので上の式の左辺と右辺は等しいのです(ちょっと乱暴な言い方ですが)。

ちなみに、\(\theta = 0\) のまわりでテイラー展開することをマクローリン展開とも言います。以降でも全てテイラー展開は \(\theta = 0\) のまわりでやるのでマクローリン展開と言えばいいのですが、全部テイラー展開という言葉を使い「\(\theta = 0\) のまわりで」というのも省略します。理由はマクローリンって言いにくいし、覚えにくいから。これらの用語を知らなかった方はテイラー展開だけ覚えておけば良いと思います。

さて、\(R(0) = I,\ XX = -I\) であることを利用すると、
\begin{eqnarray*}
R(\theta) & = & \left(1\, – \frac{1}{2}\theta^2 + \cdots + \frac{(-1)^n}{2n!}\theta^{2n} + \cdots \right) I \\
& & \ + \left(\theta\ – \frac{1}{3!}\theta^3 + \cdots + \frac{(-1)^n}{(2n + 1)!}\theta^{2n + 1} + \cdots \right) X \\
& = & \cos\theta\ I + \sin\theta\ X
\end{eqnarray*}
となることがわかります。
最後の式の変形には \(\cos\theta\) と \(\sin\theta\) のテイラー展開を用いました。
\begin{eqnarray*}
\cos\theta & = & 1\, – \frac{1}{2}\theta^2 + \cdots + \frac{(-1)^n}{2n!}\theta^{2n} + \cdots \\
\sin\theta & = & \theta\ – \frac{1}{3!}\theta^3 + \cdots + \frac{(-1)^n}{(2n + 1)!}\theta^{2n + 1} + \cdots
\end{eqnarray*}
テイラー展開を知らない人は、\(\theta = 0\) のときにそれぞれ \(\cos\theta\) と \(\sin\theta\) に一致し、微分したときの関係も \(\cos\theta,\ \sin\theta\) に一致することを確かめてください。

\(I\) と \(X\) を組み合わせたもの(線形結合したもの)は、かけ算において複素数と同じふるまいをしました。ですので、\(I\) を \(1\) に \(X\) を \(i\) に置き換えてかけ算をしても良いことになります。
$$ R(\theta) \to \cos\theta + i \sin\theta $$
実際にこれを複素平面上の任意の点 \((x,\ y) = x + iy\) にかけると、その点が原点まわりに角度 \(\theta\) だけ回転されていましたね。

でもちょっと待ってください。

これまでの説明では \(I\) と \(X\) を組み合わせた行列が複素数と同じふるまいをするから回転行列を複素数で表現したわけですが、2次元ベクトルを複素数で表現して良いとは誰も言ってません。なので、複素数を複素数に掛けるというのは2つの行列を合成しているに過ぎないはずです。

「お前は何を言ってるんだ」と思っている方もいるかも知れませんが、3次元空間の話に移ったときにはこの違いが重要になるので、もう少し話を聞いてください。

回転行列は、単位行列 \(I\) と回転の生成子 \(X\) の組み合わせで表現できました。この2つの行列のあらゆる組み合わせ(線形結合)全体の集合は2次元空間を作ります。2次元空間と言っても、点(ベクトル)の集合ではなく、行列の集合です。ですから、今のところ複素数はこの行列の集合を表現しているに過ぎません。
しかし幸いなことに、この行列の集合を2次元ベクトルの集合に写像することはとても簡単です。それは、この集合に含まれる行列をベクトル\((1,\ 0)\)に掛けてやるだけです。
$$
I\left(\begin{array}{c}1\\ 0\end{array}\right) = \left(\begin{array}{c}1\\ 0\end{array}\right),\
X\left(\begin{array}{c}1\\ 0\end{array}\right) = \left(\begin{array}{c}0\\ 1\end{array}\right)
$$
すると、単位行列 \(I\) が掛かった部分は \((1,\ 0)\) のままで、回転の生成子 \(X\) が掛かった部分は \((0,\ 1)\) となり、行列は直交する2つのベクトル \((1,\ 0)\) と \((0,\ 1)\) の組み合わせで表現されたベクトルに写像されます。

さて、\(I\) と \(X\) の組み合わせで作られた2つの行列 \(A, B\) の合成 \(AB\) を考えてみましょう。\(B = xI + yX\) とし、この合成された行列 \(AB\) を上のように2次元のベクトル空間に写像すると
$$ AB \left(\begin{array}{c}1\\ 0\end{array}\right) = A \left(\begin{array}{c}x\\ y\end{array}\right) $$
となり、行列 \(B\) に対応した2次元ベクトル \((x,\ y)\) を行列 \(A\) で変換したものになります。
つまり、上の2つの行列の合成はベクトル \((x,\ y)\) に行列 \(A\) を掛けたものと見ることもできます。ですので、複素数と複素数のかけ算も行列の合成ではなく、行列とベクトルのかけ算とみなして差し支えありません。もっと簡潔に言ってしまえば、回転行列だけでなく、2次元ベクトルも複素数で表現して良いわけです。

さあ、3次元に移りましょう。

6 thoughts on “クォータニオン徹底解説

  • 2018/11/04 at 6:20 AM
    Permalink

    Baker-Campbell-Hausdorffの公式と X, Y, Z の交換関係
    [X, Y]=Z, [Y, Z]=X, [Z, X]=Y

    を使えば、 e^XC=e^XA*e^XB としたときの XC は
    XC={a⃗ +b⃗ +12(a⃗ ×b⃗ )+112{a⃗ ×(a⃗ ×b⃗ )+b⃗ ×(b⃗ ×a⃗ )}+⋯}⋅X
    これのどこに交換関係を利用しておられるのですか?

    Reply
  • 2018/11/04 at 6:22 AM
    Permalink

    9ページの最初の方に書かれている内容です

    Reply
  • 2018/11/05 at 11:47 AM
    Permalink

    コメントありがとうございます。
    $$ [X_A, X_B] = (\vec{a} \times \vec{b}) \cdot \vec{X} $$
    とするのに使っています。

    Reply
  • 2018/11/06 at 4:26 AM
    Permalink

    こんな質問にまで答えてくださりありがとうございます

    Reply
  • 2018/11/07 at 4:50 AM
    Permalink

    10ページの内容なのですがR(a→ 、 θ)にベクトルv→ をかけるとa→ を軸にθだけ回転した式が与えられるのであればRに対応したクォータニオンqで
    v→*qで回転したv→が求められそうだと思ったのですが、これでは値は求められないのでしょうか?

    Reply
    • 2018/11/07 at 1:18 PM
      Permalink

      9ページまでの説明で、回転行列同士の積とクォータニオン同士の積は同じ振舞いをすることがわかったわけですが、ベクトルに対する作用が同じということまでは言えません。そもそも、ベクトルにクォータニオンを作用させる方法も定義されていません。
      そこで、10ページ目では、回転行列の座標変換(これは回転行列同士の積だけで表される)を使ってベクトル(回転軸)が変換されることを示し、それに対応したクォータニオン同士の積から、クォータニオンでベクトルを回転させる方法を導いています。

      Reply

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Anti Spam Code *