クオータニオン⇒回転の対応は、じゃあそんなに自然なものじゃなくて、二段構えになっているのかな?つまり、四元数が直接対応するのはIとパウリ行列を基底とする実数係数線形空間なわけで、SU(2)がその中に入っているのは、リー環がまさにパウリ行列で張られて、かつIを加えると(交換子のみならず通常の)積が閉じている、という議論から言えてこれは比較的自然なストーリーだ。一方でさらにトレースレスのエルミート行列と三次元ベクトルを
[z/2, x/2+iy/2]
[x/2-iy/2,-z/2]
みたいな感じで対応させるとこれもこの線形空間に入っていて、しかもSU(2)は``三次元ベクトルを回転''させる、という話が介在してようやく三次元ベクトルの回転に四元数が使えるわけだ。多分そういう二段構造になっている。
ラッキーな事に、対角化でなく加法定理を調べる事を選択したから、その部分はパウリ行列の線形結合の指数関数の話にそのまま使える。ただし、パウリ行列はブロッホ球上の``点''を角速度2で回転させるようなジェネレータだから回転時間が回転角の半分で済むので、θがθ/2の形で入るわけだ。
四元数がベクトルを回転させるのって、もっと自然な話だと思ってたんだけど、偶々としか言いようがないぞ、これ。高次元に多分拡張できないし。
まあいいや、なんとなくクオータニオンの使い方は分かってきたし。でも、剛体の回転シミュレーションはまだ敷居が高いかも。まあどうせ遊びだ。気長に気長に。
追記:パウリ行列でなく、それにiを乗じた物、つまり
J=[i, 0]
[0,-i]
K=[ 0,1]
[-1,0]
L=[0,i]
[i,0]
に単位行列Iを加えた物が四元数の単位要素と対応する。考えてみればこれらをSU(2)のジェネレータとして使う場合、iを乗じてから指数の肩に乗っけるのだから、以前の加法定理の議論を流用するには、当然そうあるべきだった。これでようやく、これら単位要素は二乗すると-Iになるという虚数単位と同様の振る舞いをするようになり、I, -I, J, -J, K, -K, L, -Lの間で積が閉じる。さらに行列としての共役転置も閉じ、これは四元数の共役と対応する。後でSU(2)と四元数の対応を書くが、ユニタリ行列の逆は共役転置なので、SU(2)に対応させた四元数の逆数は共役により簡単に得られる事になる。
3次元ベクトルと行列の対応は
[ix/2 , y/2+z/2]=xJ+yK+zL
[-y/2+z/2, -ix/2 ]
となり、トレースレスの反エルミート行列となる。こうして3次元ベクトルは純四元数(I成分がない)に対応するだけでなく、見かけの上で数ベクトルとしての三次元ベクトルをそのまま四元数と同一視できる。1/2の係数は、共役転置との積が、つまり四元数としてのノルムの二乗が、ベクトルのノルムの二乗と一致するようにするためだ。
一方でSU(2)も四元数と、|(nx,ny,nz)=1|の時
exp(t(nxJ+nyK+nzL))=cos(t)I+sin(t)(nxJ+nyK+nzL)
で対応する。SU(2)が四元数に対応する、つまりI,J,K,Lが張る実係数線形空間内にある事は既に書いたI, -I, J, -J, K, -K, L, -Lの間の(交換子のみならず)積が閉じる事から直ちに言えるが、この具体的な表式からさらに次の事実を見出す事ができる。すなわち、SU(2)の要素は四元数としてノルム1であり、しかもノルム1の四元数は全てこの形に書ける。つまり、SU(2)は、四元数体の中にノルム1である物からなる部分集合として埋め込まれる。既に注意したように、SU(2)の場合、四元数としての共役と、四元数としての逆数と、行列としての共役転置と、行列としての逆行列が全て対応する。
これら二つの全く異なる意味での対応関係と、上で示した形で表したSU(2)がxJ+yK+zLの形の``三次元ベクトル''をtの2倍の角度だけ(nx,ny,nz)を軸として``回転''させるという話まで考えて、結局三つの半ば独立した話を全て合わせてようやくクオータニオンが回転変換に使用できるというわけだ。
元から全く自然なストーリではない非自明な結果であり、それ故に使い方だけを説明される場合が多いわけだが、なんとなく自然なストーリーが背後にありそうに見えてしまって、勝手な哲学を見出そうとして、それで混乱するわけだ。q v conj(q)でベクトルvが回転します、なんてあっさり書いてあると、まるで、ベクトルを四元数が``直接''回転するように見えるのでどうにか自然な説明を見出そうとしてしまいがちになるが、実際にはこのように、何段階もの対応関係を経て、ようやく四元数は回転を実行できるのだ。行列のユニタリ行列による変換だから、ユニタリ行列とその共役転置で両側から挟む形になるわけだ。