FarPhys〜物理学と戯れて〜

物理学の解説をしているFarPhysのブログです!

四元数と回転変換

気になる話題・問題があればこちらからお願いします→お題箱(google from)

 

 

四元数の導入

我々はこれまで様々な数を用いて物理を記述してきた.特に複素数の導入は物理学の記述に大きな貢献をした.それまで独立に扱ってきたサイン・コサイン関数をオイラーの公式
$$
e^{i\theta}=\cos\theta+i\sin\theta
$$
を介して統一的に扱うことができるようになった.この$e^{i \theta}$という形はLie群,すなわち連続パラメータで指定されるような変換の表現である.物理学では回転やブースト,平行移動といった基本的な変換を記述する.そのような意味で複素数という存在は物理学の発展に不可欠だった.

では新たな「虚数単位」とも呼ぶべき$j$を導入して
$$
a_0+a_1i+a_2j\ (a_0,a_1,a_2\in\mathbb{R})
$$
という数を定義してはどうだろう.この試みが成功すれば,物理学に新たな表現方法が生まれるかもしれない.

しかし現実はそう簡単ではない.我々が扱う数は「群」でなければならないという要請がある.すなわち集合$G$の要素$a,b,c$に対して積の演算$\times$が定義できて,
$$\begin{align} & a\times b\in G\\ & {}^\exists 1\in G\ s.t.\ a\times 1=1\times a =a\\ & {}^\exists a^{-1}\in G\ s.t.\ a\times a^{-1}=a^{-1}\times a=1\,, {}^\forall a\\ &(a\times b)\times c=a\times(b\times c)=a\times b\times c\end{align}
$$
の4つの条件を満たしていなければならない.

さて,新たに導入した虚数単位$j$について考えよう.演算は閉じるので,
$$
ij = A+Bi+Cj\,,A,B,C\in \mathbb{R}
$$
が成り立っているはずだ.これに$i$をかけてみよう.ただし$ij=ji$であるとは認めていないので左からかける必要がある.
$$
(-1)j=Ai-B+Cij
$$
これを満たすような$A,B,C$は実は存在しない.計算してみると
$$
-j=Ai-B+C(A+Bi+Cj)\\
(CA-B)+(A+CB)i+(C^2+1)j=0
$$
となるのだが,これが成り立つためには定数項および$i,j$の係数がそれぞれ$0$である必要がある.しかし$j$の係数を見てみると
$$
C^2+1=0
$$
となっている.このような実数$C$は存在しないから,虚数単位$j$を導入して「三元数」とでも呼ぶべき数を構成することはできないのだ.

では,$j$だけではなく$k$という虚数単位も導入してはどうだろうか.このような数
$$
q=q_0+q_1i+q_2j+q_3k\ (q_0,q_1,q_2,q_3\in\mathbb{R})
$$
のことを「四元数 (quaternion)」という.虚数単位の積については次のように定める.
$$
i^2=j^2=k^2=-1\\
ij=-ji=k\,,jk=-kj=i\,,ki=-ik=j
$$
自身との積(2乗)が$-1$になっているのは非常に自然だろう.一方で自分以外との積の関係は,正規直交基底の外積の関係に似ていることがわかる.
$$
\begin{cases}
\mathbf{e}_1\times \mathbf{e}_2=-\mathbf{e}_2\times \mathbf{e}_1=\mathbf{e}_3\\
\mathbf{e}_2\times \mathbf{e}_3=-\mathbf{e}_3\times \mathbf{e}_2=\mathbf{e}_1\\
\mathbf{e}_3\times \mathbf{e}_1=-\mathbf{e}_3\times \mathbf{e}_1=\mathbf{e}_2
\end{cases}
$$
後で確認するが,実際に四元数の第1,2,3成分は基底$\{i,j,k\}$が張る3次元ベクトルの拡張である.

さて,このように虚数単位の積を定義すれば四元数が積の演算で閉じることは明らかである.一方で交換則
$$
qq'=q'q
$$
が成り立たないことも明らかである.

さて,四元数の積の構造を見るために,$q=q_0+q_1i+q_2j+q_3k$の$q_0$をスカラー部分,残りをベクトル部分と呼ぶことにする.さらにスカラー部分は$\alpha:=q$,ベクトル部分は$\mathbf{a}:=q_1i+q_2j+q_3k$と書くことにする.すると2つの四元数$q=\alpha+\mathbf{a}\,,q'=\beta+\mathbf{b}$の積は
$$
qq'=\alpha\beta +\alpha\mathbf{b}+\beta\mathbf{a}+\mathbf{ab}
$$
となる.最後のベクトル同士の積は正規直交基底での内積$\langle\mathbf{a},\mathbf{b}\rangle$と外積$\mathbf{a}\times\mathbf{b}$に対して
$$
\mathbf{ab}=-\langle\mathbf{a},\mathbf{b}\rangle+\mathbf{a}\times\mathbf{b}
$$
と書くことができる(各成分を書き下して計算すればそれがわかる).このことから四元数のベクトル部分は3次元ベクトルを拡張したものであるとわかるだろう.

共役・逆元・ノルム

四元数は群の構造を持つ.従って逆元が存在する.また,複素数の拡張であるから共役を考えることもできる.さらに四元数はベクトルの拡張と見なすこともできるので,ノルムも存在するはずだ.これらの3つについて考えていく.

まず共役な四元数であるが,複素数$a+ib$の共役が虚数単位$i$を$-i$に変える操作だと思えば,四元数$q=q_0+q_1i+q_2j+q_3k$の共役は
$$
q^\dagger=q_0-q_1i-q_2j-q_3k
$$
と定義されるのが自然だろう.では,共役と積の関係はどのようになっているだろうか.先ほどの$q=\alpha+\mathbf{a}\,,q'=\beta+\mathbf{b}$に対して,共役と積の演算を行ってみると
$$
\begin{align}
(qq')^\dagger &= (\alpha\beta+\alpha\mathbf{b}+\beta\mathbf{a}-\langle\mathbf{a},\mathbf{b}\rangle+\mathbf{a}\times\mathbf{b})^\dagger\\
&= (\alpha\beta-\langle\mathbf{a},\mathbf{b}\rangle)-(\alpha\mathbf{b}+\beta\mathbf{a}+\mathbf{a}\times\mathbf{b})\\
q'^\dagger q^\dagger &= (\beta-\mathbf{b})(\alpha-\mathbf{a})\\
&=\alpha\beta-\alpha\mathbf{b}-\beta\mathbf{a}+\mathbf{ba}\\
&= (\alpha\beta-\langle\mathbf{a},\mathbf{b}\rangle)-(\alpha\mathbf{b}+\beta\mathbf{b}-\mathbf{b}\times\mathbf{a})\\
&= (\alpha\beta-\langle\mathbf{a},\mathbf{b}\rangle)-(\alpha\mathbf{b}+\beta\mathbf{b}+\mathbf{a}\times\mathbf{b})\\
&= (qq')^\dagger
\end{align}
$$
となる.この$(qq')^\dagger=q'^\dagger q^\dagger$という共役の構造は,まさに行列のエルミート共役の構造と同じだ.さらに$q^{\dagger\dagger}=q$という関係も明らかであろう.

次に自己の共役との積を考えてみる.
$$
\begin{align}
qq^\dagger &=(\alpha+\mathbf{a})(\alpha-\mathbf{a})\\
&= q_0q_0-\mathbf{aa}\\
&= q_0q_0+\langle\mathbf{a},\mathbf{a}\rangle-\mathbf{a}\times\mathbf{a}\\
&= q_0^2+q_1^2+q_2^2+q_3^2\\
&=q^\dagger q
\end{align}
$$
すなわち,四元数のノルムは次で定義することができる.
$$
||q||:=\sqrt{qq^\dagger}=\sqrt{q^\dagger q}=\sqrt{q_0^2+q_1^2+q_2^2+q_3^2}
$$
これはベクトルのノルムと全く同じ定義である.

さてノルムの正定値性
$$
q\neq 0\to ||q||>0
$$
から,次の関係式が成り立つ.
$$
q\left(\frac{q^\dagger}{||q||^2}\right)=\left(\frac{q^\dagger}{||q||^2}\right)q=1
$$
すなわち,$q\neq 0$は逆元$q^{-1}$を持つことがわかる.​
$$
q^{-1}=\frac{q^\dagger}{||q||^2}
$$
Note. 四元数代数系は体である.

体とは「非零の元$g$が逆元を持ち,非零の元による割り算で閉じる」ような代数系である.実際に$q\neq 0$について,
$$
q'q=q''q\to q'=q''
$$
であることがわかる.しかしこれはベクトルの内積外戚だけでは成り立たない.実際,ベクトル$\mathbf{a}\neq\mathbf{0}$に対して
$$
\langle \mathbf{a},\mathbf{b\rangle}=\langle \mathbf{a},\mathbf{c\rangle}
$$
が成り立っていても,$\mathbf{b}\neq\mathbf{c}$となるように$\mathbf{b},\mathbf{c}$を選ぶことができる.外積についても同様である.しかし,$\mathbf{ab}=-\langle\mathbf{a},\mathbf{b}\rangle+\mathbf{a}\times\mathbf{b}$に対しては,
$$
\mathbf{a}\neq 0,\mathbf{ab}=\mathbf{ac}\to \mathbf{b}=\mathbf{c}
$$
が必ず成り立つのである.

四元数による回転の表現

ノルムが1であるような四元数,単位四元数$q$を考えよう.そして四元数とみなしたベクトル$\mathbf{a}$を$q$で変換する.
$$
\mathbf{a}\to \mathbf{a'}=q\mathbf{a}q^\dagger
$$
変換後の四元数の共役を取ると$(q\mathbf{a}q^\dagger)^\dagger =q\mathbf{a}^\dagger q^\dagger=-q\mathbf{a}q^\dagger$であるから,$\mathbf{a'}$はベクトルであることがわかる.さらにノルムは
$$
\begin{align}
||\mathbf{a'}||^2 &= \mathbf{a'a'}^\dagger=q\mathbf{a}q^\dagger q\mathbf{a}^\dagger q^\dagger\\
&= q\mathbf{aa}^\dagger q^\dagger\\
&= ||\mathbf{a}||^2
\end{align}
$$
であり変換の前後で変化しないことがわかる.すなわち,単位四元数$q$による変換は,回転もしくは鏡映であることがわかる.実際には鏡映を含まない,純粋な回転を表す.このことを証明しよう.

その前に幾何学的なベクトルの回転を考える.任意のベクトル$\mathbf{a}$を単位ベクトル$\mathbf{n}$の周りで角度$\chi$だけ回転させるとどのようになるだろうか.これはロドリグの公式(Rodrigues Formula)で与えられる:
$$
\mathbf{a}\to \mathbf{a'}=\mathbf{a}\cos\chi+\mathbf{n}\times\mathbf{a}\sin\chi+\langle\mathbf{a},\mathbf{n}\rangle\mathbf{n}(1-\cos\chi)
$$

四元数によるベクトルの変換で,これと同じ式が得られるだろうか?まず,
$$
q_0^2+q_1^2+q_2^2+q_3^2 =1
$$
という条件から,次を満たすような$\chi$が存在する.
$$
q_0=\cos\frac{\chi}{2}\,,\sqrt{q_1^2+q_2^2+q_3^2}=\sin\frac{\chi}{2}
$$
この時,元の四元数は$q$のベクトル部分$q_1i+q_2j+q_3k$に平行な単位ベクトル$\mathbf{n}$を用いて
$$
q=\cos\frac{\chi}{2}+\mathbf{n}\sin\frac{\chi}{2}
$$
と書くことができる.この時,ベクトル$\mathbf{a}$の変換は次のようになる.
$$
\begin{align}
q\mathbf{a}q^\dagger &= \left(\cos\frac{\chi}{2}+\mathbf{n}\sin\frac{\chi}{2}\right)\mathbf{a}\left(\cos\frac{\chi}{2}-\mathbf{n}\sin\frac{\chi}{2}\right)\\
&= \mathbf{a}\cos^2\frac{\chi}{2}+(\mathbf{na}-\mathbf{an})\sin\frac{\chi}{2}\cos\frac{\chi}{2}-\mathbf{nan}\sin^2\frac{\chi}{2}
\end{align}
$$
ただし,
$$
\begin{align}
\mathbf{na}-\mathbf{an} &= 2\mathbf{n}\times \mathbf{a}\\
\mathbf{nan} &= \mathbf{n}(-\langle\mathbf{a},\mathbf{n}\rangle+\mathbf{a}\times\mathbf{n})\\
&= -\mathbf{n}\langle\mathbf{a},\mathbf{n}\rangle-\langle\mathbf{n},\mathbf{a}\times\mathbf{n}\rangle+\mathbf{n}\times(\mathbf{a}\times\mathbf{n})\\
&= -\mathbf{n}\langle\mathbf{a},\mathbf{n}\rangle+\mathbf{a}||\mathbf{n}||^2-\mathbf{n}\langle\mathbf{a},\mathbf{n\rangle}\\
&= -2\mathbf{n}\langle\mathbf{a},\mathbf{n}\rangle +\mathbf{a}||\mathbf{n}||^2
\end{align}
$$
である.このことから,変換後のベクトルは
$$
\begin{align}
q\mathbf{a}q^\dagger &=\mathbf{a}\left(\cos^2\frac{\chi}{2}-\sin^2\frac{\chi}{2}\right)+2\mathbf{n}\times\mathbf{a}\sin\frac{\chi}{2}\cos\frac{\chi}{2}+2\mathbf{n}\langle\mathbf{a},\mathbf{n}\rangle\sin^2\frac{\chi}{2}\\
&=\mathbf{a}\cos\chi+\mathbf{n}\times\mathbf{a}\sin\chi+\mathbf{n}\langle\mathbf{a},\mathbf{n}\rangle(1-\cos\chi)
\end{align}
$$
となって,確かにロドリグの公式に一致していることがわかる.このことから四元数$q$によるベクトルの変換は回転変換であることがわかる.

別の考え方によって四元数による変換が純粋な回転であることを確認することもできる.単位四元数$q$について,その条件$||q||=1$を保ったまま,
$$
q_0\to \pm 1,q_i\to0\ (i=1,2,3)
$$
という恒等変換に移すことができる.このことから,単位四元数による変換は連続パラメータで指定される,回転であることがわかる.

単位四元数による変換が回転であることがわかったところで,2つの回転変換を連続的に行うことを考えてみよう.抽象的に回転変換を$\mathcal{R}$と表現し,ベクトル$\mathbf{a}$から$\mathbf{a'}$への変換を
$$
\mathcal{R}:\mathbf{a}\to \mathbf{a'}=\mathcal{R}(\mathbf{a})
$$
とする.さらに$\mathcal{R}$に続けて$\mathcal{R'}$という変換を施す変換を$\mathcal{R'}\circ\mathcal{R}$と表現する.このとき,
$$
\begin{align}
\mathcal{R'}\circ\mathcal{R}:\mathbf{a}\to \mathbf{a'}&:=\mathcal{R'}\circ\mathcal{R}(\mathbf{a})\\
&= q'(q\mathbf{a}q^\dagger)q'^\dagger\\
&= (q'q)\mathbf{a}(q'q)^\dagger
\end{align}
$$
が成り立つことがわかる.すなわち,回転$\mathcal{R}$の四元数による表現を
$$
\mathcal{D}^\mathrm{quat.}(\mathcal{R})=q\,,\mathcal{D}^\mathrm{quat.}(\mathcal{R'})=q'
$$
と書く時,連続した回転の表現は次を満たす.
$$
\mathcal{D}^\mathrm{quat.}(\mathcal{R'\circ\mathcal{R}})=q'q=\mathcal{D}^\mathrm{quat.}(\mathcal{R'})\mathcal{D}^\mathrm{quat.}(\mathcal{R})
$$
すなわち,回転変換の四元数による表現は準同型(積と表現が可換)である.

余談

例えば2次正方行列
$$
U=\left(\begin{matrix}q_0-iq_3 & -q_2-iq_1\\ q_2-iq_1 & q_0+iq_3\end{matrix}\right)
$$
四元数の表現になっている.実際,行列の積
$$
\left(\begin{matrix}q''_0-iq''_3 & -q''_2-iq''_1\\ q''_2-iq''_1 & q''_0+iq''_3\end{matrix}\right)=\left(\begin{matrix}q'_0-iq'_3 & -q'_2-iq'_1\\ q'_2-iq'_1 & q'_0+iq'_3\end{matrix}\right)\left(\begin{matrix}q_0-iq_3 & -q_2-iq_1\\ q_2-iq_1 & q_0+iq_3\end{matrix}\right)
$$
四元数の積
$$
(q''_0+q''_1+q''_2+q''_3)=(q'_0+q'_1+q'_2+q'_3)(q_0+q_1+q_2+q_3)
$$
は同値である.というのも,行列$U$を
$$
\begin{align}
U&=q_0\left(\begin{matrix}1 & 0\\ 0&1\end{matrix}\right)+q_1\left(\begin{matrix}0 & -i\\ -i&0\end{matrix}\right)+q_2\left(\begin{matrix}0 & -1\\ 1&0\end{matrix}\right)+q_3\left(\begin{matrix}-i & 0\\ 0&i\end{matrix}\right)\\
&=q_0\mathbf{1}_2+q_1S_1+q_2S_2+q_3S_3
\end{align}
$$
と書き表すと,行列$\mathbf{1}_2,S_1,S_2,S_3$が四元数の「基底」$1,i,j,k$と同じ関係式
$$
S_1^2=S_2^2=S_3^2=-\mathbf{1}_2\\
S_1S_2=-S_2S_1=S_3\,,S_2S_3=-S_3S_2=S_1\,,S_3S_1=-S_1S_3=S_2
$$
を満たすからである.さらに,ここで導入した行列$S_1,S_2,S_3$であるが,無限小回転の表現であるパウリ行列を用いれば

{S_1=-i\sigma^1,S_2=-i\sigma^2,S_3=-i\sigma^3}

と書くことができる.このことからも四元数が回転と密接に結びついていることがわかるだろう(終)