第13回 3次元回転と四元数

オンデマンドで受講する場合は、本題に入る前に必ず連絡の動画を見てください。

四元数に関する補足

概要

動画の解説を参照

四元数 \(\boldsymbol{q} = (s, x, y, z) = (s, \boldsymbol{v})\) の大きさは次のように定義されます。
\(|\boldsymbol{q}| = \sqrt{s^2 + x^2 + y^2 + z^2} = \sqrt{s^2 + |\boldsymbol{v}|^2}\)

虚部の符号を逆転させたものを共役四元数(きょうやくしげんすう)といいます。
\(\boldsymbol{q} = (s, x, y, z) = (s, \boldsymbol{v})\) の共役四元数は次のようにバーをつけて表します。
\(\bar{\boldsymbol{q}} = (s, -x, -y, -z) = (s, -\boldsymbol{v})\)
もとの四元数と共役四元数の積は、前回の公式 (6)
\(\boldsymbol{q}_1\boldsymbol{q}_2 = (s_1s_2 - \boldsymbol{v}_1\cdot\boldsymbol{v}_2,s_1\boldsymbol{v}_2+s_2\boldsymbol{v}_1+\boldsymbol{v}_1\times\boldsymbol{v}_2)\)
\(\boldsymbol{q}_1=(s_1, \boldsymbol{v}_1)\) → \(\boldsymbol{q}=(s, \boldsymbol{v})\)
\(\boldsymbol{q}_2=(s_2, \boldsymbol{v}_2)\) → \(\bar{\boldsymbol{q}}=(s, -\boldsymbol{v})\)
のように置き換えれば
\(\hspace{10pt}\boldsymbol{q}\bar{\boldsymbol{q}}\)
\(=(s^2-\boldsymbol{v}\cdot(-\boldsymbol{v}), s\boldsymbol{v}+s(-\boldsymbol{v}) + \boldsymbol{v}\times(-\boldsymbol{v}))\)
\(=(s^2+\boldsymbol{v}\cdot\boldsymbol{v}, s\boldsymbol{v}-s\boldsymbol{v} - \boldsymbol{v}\times\boldsymbol{v})\)
\(=(s^2 + |\boldsymbol{v}|^2, \boldsymbol{0})\)
\(=(|\boldsymbol{q}|^2, \boldsymbol{0})\)
\(=|\boldsymbol{q}|^2\)
となります。これは \(i, j, k\) 成分がどれも 0 である純粋な実数です。
計算は省略しますが、逆にかけた \(\bar{\boldsymbol{q}}\boldsymbol{q}\) も同様に \(|\boldsymbol{q}|^2\) になります。
もとの四元数との積が 1 (つまり (1, 0, 0, 0) ) になる四元数を 逆元といい、\(\boldsymbol{q}^{-1}\) と書きます。
上記の共役四元数を使えば、逆元はこのように書けます。
\(\boldsymbol{q}^{-1}=\) \(\Large{\frac{\bar{\boldsymbol{q}}}{|\boldsymbol{q}|^2}}\)
実際、もとの四元数を左からかけると
\(\boldsymbol{q}\)\(\boldsymbol{q}^{-1}\) \(=\boldsymbol{q}\)\(\Large{\frac{\bar{\boldsymbol{q}}}{|\boldsymbol{q}|^2}}\) \(=\)\(\Large{\frac{\boldsymbol{q}\bar{\boldsymbol{q}}}{|\boldsymbol{q}|^2}}\) \(=\)\(\Large{\frac{|\boldsymbol{q}|^2}{|\boldsymbol{q}|^2}}\) \(=1\)
右からかけても
\(\boldsymbol{q}^{-1}\)\(\boldsymbol{q}\) \(=\Large{\frac{\bar{\boldsymbol{q}}}{|\boldsymbol{q}|^2}}\)\(\boldsymbol{q}\) \(=\)\(\Large{\frac{\bar{\boldsymbol{q}}\boldsymbol{q}}{|\boldsymbol{q}|^2}}\) \(=\)\(\Large{\frac{|\boldsymbol{q}|^2}{|\boldsymbol{q}|^2}}\) \(=1\)
で 1 になることが確認できます。

課題1

※ 準備 : 学籍番号を入れて「入力」をクリック (タップ) してください。


\(\boldsymbol{q}\) の大きさを求めてください。
計算結果は四捨五入して小数第2位までにしてください。

課題1解説

課題2

課題1 と同じ \(\boldsymbol{q}\) の共役四元数 \(\bar{\boldsymbol{q}}\) を求めてください。

課題2解説

課題3

課題1 と同じ \(\boldsymbol{q}\) の逆元 \(\boldsymbol{q}^{-1}\) を求めてください。
成分は分数の形で書いてください。約分する必要はありません。

課題3解説

四元数を使ったベクトルの回転

概要

動画の解説を参照

実部が 0 の四元数を純虚四元数といいます。
純虚四元数どうしの積は、前回の公式 (6) で
\(\boldsymbol{q}_1=(s_1, \boldsymbol{v}_1)\) → \(\boldsymbol{p}_1=(0, \boldsymbol{v}_1)\)
\(\boldsymbol{q}_2=(s_2, \boldsymbol{v}_2)\) → \(\boldsymbol{p}_2=(0, \boldsymbol{v}_2)\)
のように置き換えれば
\(\boldsymbol{p}_1\boldsymbol{p}_2\)
\(=(0-\boldsymbol{v}_1\cdot\boldsymbol{v}_2, 0\boldsymbol{v}_1+0\boldsymbol{v}_2 + \boldsymbol{v}_1\times\boldsymbol{v}_2)\)
\(=(-\boldsymbol{v}_1\cdot\boldsymbol{v}_2, \boldsymbol{v}_1\times\boldsymbol{v}_2)\)
となり、実部は内積の符号を反転させたもの、ベクトル部分は外積になることがわかります。
特に、大きさが 1 の四元数を単位四元数といいます。
例えば
\(1 = (1, 0, 0, 0)\)
\(i = (0, 1, 0, 0)\)
\(j = (0, 0, 1, 0)\)
\(k = (0, 0, 0, 1)\)
\(\frac{1}{\sqrt{2}}i + \frac{1}{\sqrt{2}}k = \left(0, \frac{1}{\sqrt{2}}, 0, \frac{1}{\sqrt{2}}\right)\)
などは単位四元数です。
単位四元数の大きさは1なので、逆元は共役四元数と同じになります。
\(\boldsymbol{q}^{-1}=\bar{\boldsymbol{q}}\)

純虚四元数 \(\boldsymbol{p}=(0, \boldsymbol{r})\) と単位四元数 \(\boldsymbol{q} = (s, \boldsymbol{v})\) で \(\boldsymbol{p}'=\boldsymbol{q}\boldsymbol{p}\boldsymbol{q}^{-1}\) を計算すると、重要な意味をもつ結果が得られます。
まず前の2つの積は前回の公式 (6) から
\(\boldsymbol{q}\boldsymbol{p}=(-\boldsymbol{v}\cdot\boldsymbol{r},s\boldsymbol{r}+\boldsymbol{v}\times\boldsymbol{r})\)
となります。
これに右から \(\boldsymbol{q}^{-1}=(s,-\boldsymbol{v})\) をかければ \(\boldsymbol{p}'\) が求められます。その実部は
\(\hspace{10pt}-s\boldsymbol{v}\cdot\boldsymbol{r}\) \(-\big(s\boldsymbol{r}+\boldsymbol{v}\times\boldsymbol{r}\big)\cdot(-\boldsymbol{v})\)
\(=-s\boldsymbol{v}\cdot\boldsymbol{r}+s\boldsymbol{r}\cdot\boldsymbol{v}\)
\(=0\)
になります (1行目から2行目の変形では、\(\boldsymbol{v}\times\boldsymbol{r}\) と \(\boldsymbol{v}\) が垂直であるため、内積が0であるという性質を使いました)。
この結果から、\(\boldsymbol{p}'\) も純虚四元数であることがわかります。
そこで、\(\boldsymbol{p}' = (0, \boldsymbol{r}')\) と書くことにしましょう。\(\boldsymbol{p}'\) の虚部、つまり \(\boldsymbol{r}'\) は前回の公式 (6) から
\(\boldsymbol{r}'=-\boldsymbol{v}\cdot\boldsymbol{r}(-\boldsymbol{v})\) \(+s(s\boldsymbol{r}+\boldsymbol{v}\times\boldsymbol{r})\) \(+(s\boldsymbol{r}+\boldsymbol{v}\times\boldsymbol{r})\times(-\boldsymbol{v})\)
\(=(\boldsymbol{v}\cdot\boldsymbol{r})\boldsymbol{v}\) \(+s^2\boldsymbol{r}+s(\boldsymbol{v}\times\boldsymbol{r})-s(\boldsymbol{r}\times\boldsymbol{v})\) \(-(\boldsymbol{v}\times\boldsymbol{r})\times\boldsymbol{v}\)
\(=(\boldsymbol{v}\cdot\boldsymbol{r})\boldsymbol{v}\) \(+s^2\boldsymbol{r}-2s(\boldsymbol{r}\times\boldsymbol{v})\) \(+\boldsymbol{v}\times(\boldsymbol{v}\times\boldsymbol{r})\)
\(=(\boldsymbol{v}\cdot\boldsymbol{r})\boldsymbol{v}\) \(+s^2\boldsymbol{r}-2s(\boldsymbol{r}\times\boldsymbol{v})\) \(+(\boldsymbol{v}\cdot\boldsymbol{r})\boldsymbol{v}\) \(-(\boldsymbol{v}\cdot\boldsymbol{v})\boldsymbol{r}\)
\(=(s^2-|\boldsymbol{v}|^2)\boldsymbol{r}\) \(+2(\boldsymbol{v}\cdot\boldsymbol{r})\boldsymbol{v}\) \(-2s(\boldsymbol{r}\times\boldsymbol{v})\)
となります。3行目から4行目の変形ではベクトル三重積の公式
\(\boldsymbol{A}\times(\boldsymbol{B}\times\boldsymbol{C})=(\boldsymbol{A}\cdot\boldsymbol{C})\boldsymbol{B}-(\boldsymbol{A}\cdot\boldsymbol{B})\boldsymbol{C}\)
を使いました。

一方、どんな単位四元数も角度 \(\theta\) と単位ベクトル \(\boldsymbol{n}\) を使って以下の形で表せます。
\(\boldsymbol{q} = (\cos(\theta/2), \sin(\theta/2)\boldsymbol{n})\)
この形を使うと、つまり (\(s\)→\(\cos(\theta/2)\), \(\boldsymbol{v}\)→\(\sin(\theta/2)\boldsymbol{n}\)) のように置き換えると
\(\boldsymbol{r}'=(\cos^2(\theta/2)-\sin^2(\theta/2))\boldsymbol{r}\) \(+2\sin^2(\theta/2)(\boldsymbol{n}\cdot\boldsymbol{r})\boldsymbol{n}\) \(-2\cos(\theta/2)\sin(\theta/2)(\boldsymbol{r}\times\boldsymbol{n})\)
となり、三角関数の半角の公式を使えば
\(\boldsymbol{r}'=\boldsymbol{r}\cos\theta\) \(+\boldsymbol{n}(\boldsymbol{n}\cdot\boldsymbol{r})(1-\cos\theta)\) \(+\boldsymbol{n}\times\boldsymbol{r}\sin\theta\)・・・(1)
となります。これはロドリゲスの回転公式と呼ばれるもので、\(\boldsymbol{n}\) の向きの回転軸のまわりに \(\theta\) だけ \(\boldsymbol{r}\) を回転させる変換です。

\(\boldsymbol{n}=(1, 0, 0)\) にすると回転軸がちょうどx軸になります。\(\boldsymbol{r}=(x, y, z)\) とすると (1)式は
\(\boldsymbol{r}'=(x, y, z)\cos\theta+x(1,0,0)(1-\cos\theta)+(0, -z, y)\sin\theta\)
\(=(x\cos\theta, y\cos\theta, z\cos\theta)+(x(1-\cos\theta),-z\sin\theta, y\sin\theta)\)
\(=(x, y\cos\theta-z\sin\theta, y\sin\theta+z\cos\theta)\)
となります。これを行列の形で書くと
\(\begin{pmatrix} x'\\y'\\z' \end{pmatrix} = \begin{pmatrix} 1 & 0 & 0\\ 0 & \cos\theta & -\sin\theta\\ 0 & \sin\theta & \cos\theta\\ \end{pmatrix} \begin{pmatrix} x\\y\\z \end{pmatrix} \)
で、まさにx軸のまわりの角度 \(\theta\) の回転です。
同様に、\(\boldsymbol{n}=(0, 1, 0)\) にすれば y軸の周りの回転、\(\boldsymbol{n}=(0, 0, 1)\) にすればz軸の周りの回転になります。
\(\boldsymbol{n}=\left(\frac{1}{\sqrt{3}}, \frac{1}{\sqrt{3}}, \frac{1}{\sqrt{3}}\right)\)、つまりx軸、y軸、z軸とちょうど等距離にある軸のまわりの回転は
\(\boldsymbol{r}'=(x,y,z)\cos\theta+\frac{1}{3}(x+y+z)(1,1,1)(1-\cos\theta)+\frac{1}{\sqrt{3}}(z-y, x-z, y-x)\sin\theta\)
です。特に \(\theta=\frac{2}{3}\pi\)、つまり120°の場合は \(\cos\theta=-\frac{1}{2}\), \(\sin\theta=\frac{\sqrt{3}}{2}\) なので、
\(\boldsymbol{r}'=-\frac{1}{2}(x,y,z)+\frac{1}{3}\frac{3}{2}(x+y+z)(1,1,1)+\frac{1}{\sqrt{3}}\frac{\sqrt{3}}{2}(z-y, x-z, y-x)\)
\(=\frac{1}{2}(y+z,z+x,x+y)+\frac{1}{2}(z-y, x-z, y-x)\)
\(=(z, x, y)\)
となります。つまり、x←y←z←x のように座標が置き換わる変換になります。

課題

課題解答