【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

四元数によるベクトル三重積とヤコビ恒等式

四元数によってベクトル三重積の公式とヤコビ恒等式を導出します。

目次

概要

実部がなく虚部だけの四元数を純虚四元数と呼びます。$a,b,c$ を純虚四元数とします。

\begin{aligned} a&=a_1i+a_2j+a_3k \\ b&=b_1i+b_2j+b_3k \\ c&=c_1i+c_2j+c_3k \end{aligned}

純虚四元数は 3 次元ベクトルと同一視できます。

a_1i+a_2j+a_3k \mapsto \begin{pmatrix}a_1 \\ a_2 \\ a_3\end{pmatrix}

純虚四元数の積は「外積内積」となります。

ab = a \times b - a \cdot b

ベクトル三重積の公式は外積内積に変換していると解釈できます。四元数で扱えそうです。(これがこの記事を書いた動機です)

a×(b×c)=(a⋅c)b-(a⋅b)c

しかし単純に計算すると結果を想定して項を補うことになります。そのため別のアプローチを試みます。

外積結合則を満たしません。結合則からのずれより、ヤコビ恒等式と呼ばれる関係式が得られます。

a×(b×c)-(a×b)×c=b×(a×c)
∴a×(b×c)+b×(c×a)+c×(a×b)=0

ヤコビ恒等式を経由してベクトル三重積の公式が導出できます。

\begin{aligned} a×(b×c) &=b×(a×c)-c×(a×b) \\ &=b(a⋅c)-c(a⋅b) \end{aligned}

四元数

今回の記事で必要となる四元数の知識を簡単にまとめます。

ベクトルには内積外積が定義されます。

\begin{aligned} \begin{pmatrix}a_1 \\ a_2 \\ a_3\end{pmatrix} \cdot \begin{pmatrix}b_1 \\ b_2 \\ b_3\end{pmatrix} &= a_1b_1+a_2b_2+a_3b_3 \\ \begin{pmatrix}a_1 \\ a_2 \\ a_3\end{pmatrix} \times \begin{pmatrix}b_1 \\ b_2 \\ b_3\end{pmatrix} &= \begin{pmatrix}a_2b_3-a_3b_2 \\ a_3b_1-a_1b_3 \\ a_1b_2-a_2b_1\end{pmatrix} \end{aligned}

これを純虚四元数の積と比較すれば、「外積内積」となることが分かります。

\begin{aligned} &(a_1i+a_2j+a_3k)(b_1i+b_2j+b_3k) \\ &=\underbrace{(a_2b_3-a_3b_2)i+(a_3b_1-a_1b_3)j+(a_1b_2-a_2b_1)k}_{\text{外積}} \\ &\quad-\underbrace{(a_1b_1+a_2b_2+a_3b_3)}_{\text{内積}} \end{aligned}

内積は交換しますが、外積は交換に対して符号が反転します。

\begin{aligned} a⋅b&=b⋅a \\ a×b&=-b×a \end{aligned}

純虚四元数の積を交換すれば、外積部分の符号が反転します。

\begin{aligned} ab&=a×b-a⋅b \\ ba&=b×a-b⋅a \\ &=-a×b-a⋅b \end{aligned}

$ab-ba$ は積のうち交換しない部分を抽出し、交換子と呼びます。$ab+ba$ は交換する部分を抽出し、反交換子と呼びます。

\begin{aligned} ab-ba&=2a×b \\ ab+ba&=-2a⋅b \end{aligned}

交換子と反交換子の係数を調整すれば、外積内積が得られます。内積の符号に注意してください。

\begin{aligned} a⋅b&=-\frac12(ab+ba) \\ a×b&=\frac12(ab-ba) \end{aligned}

ベクトル三重積

単純に純虚四元数の計算で公式を示そうとすると、結果を想定して項を補う必要があります。(赤字部分)

\begin{aligned} &a×(b×c) \\ &=\frac{a×(bc-cb)}2 \\ &=\frac{a(bc-cb)-(bc-cb)a}4 \\ &=\frac{abc-acb-bca+cba}4 \\ &=\frac{abc-acb-bca+cba\textcolor{red}{+bac-bac+cab-cab}}4 \\ &=\frac{abc+bac+cab+cba-acb-cab-bac-bca}4 \\ &=\frac{(ab+ba)c+c(ab+ba)-(ac+ca)b-b(ac+ca)}4 \\ &=-\frac{(a⋅b)c+c(a⋅b)-(a⋅c)b-b(a⋅c)}2 \\ &=(a⋅c)b-(a⋅b)c \end{aligned}

ベクトルの成分には触れないで、項の並べ替えで外積から内積に変形しているのがポイントです。

結合子とヤコビ恒等式

四元数の積は結合則を満たします。

a(bc)=(ab)c

そのため括弧を省略して $abc$ と書くことができます。

ところが外積結合則を満たしません。

a×(b×c)≠(a×b)×c

左辺と右辺の差は結合則からのずれを表し、結合子と呼びます。計算して確認します。

\begin{aligned} &a×(b×c)-(a×b)×c \\ &=\frac{a×(bc-cb)}2-\frac{(ab-ba)×c}2 \\ &=\frac{a(bc-cb)-(bc-cb)a}4-\frac{(ab-ba)c-c(ab-ba)}4 \\ &=\frac{\cancel{abc}-acb-bca+\cancel{cba}-\cancel{abc}+bac+cab-\cancel{cba}}4 \\ &=\frac{bac-bca-acb+cab}4 \\ &=\frac{b(ac-ca)-(ac-ca)b}4 \\ &=\frac{b×(ac-ca)}2 \\ &=b×(a×c) \end{aligned}

結果を整理すれば、ヤコビ恒等式と呼ばれる関係式が得られます。

\begin{aligned} a×(b×c)-b×(a×c)-(a×b)×c&=0 \\ ∴a×(b×c)+b×(c×a)+c×(a×b)&=0 \end{aligned}

ベクトル三重積とヤコビ恒等式

ヤコビ恒等式を経由してベクトル三重積の公式を導出します。2 行目に現れる 2 つのベクトル三重積を色分けして、一部の項を交換して内積を構成する様子を示します。

\begin{aligned} &a×(b×c) \\ &=-\textcolor{red}{b×(c×a)}-\textcolor{blue}{c×(a×b)} \\ &=-\frac{\textcolor{red}{b×(ca-ac)}\textcolor{blue}{+c×(ab-ba)}}2 \\ &=-\frac{\textcolor{red}{b(ca-ac)-(ca-ac)b}\textcolor{blue}{+c(ab-ba)-(ab-ba)c}}4 \\ &=-\frac{\textcolor{red}{bca-bac-cab+acb}\textcolor{blue}{+cab-cba-abc+bac}}4 \\ &=-\frac{\textcolor{red}{bca}\textcolor{blue}{+bac+cab}\textcolor{red}{+acb-cab}\textcolor{blue}{-cba-abc}\textcolor{red}{-bac}}4 \\ &=-\frac{b(\textcolor{red}{ca}+\textcolor{blue}{ac})+(\textcolor{blue}{ca}+\textcolor{red}{ac})b-c(\textcolor{red}{ab}+\textcolor{blue}{ba})-(\textcolor{blue}{ab}+\textcolor{red}{ba})c}4 \\ &=\frac{b(c⋅a)+(c⋅a)b-c(a⋅b)-(a⋅b)c}2 \\ &=(a⋅c)b-(a⋅b)c \end{aligned}

計算過程を単純化すれば、ヤコビ恒等式とベクトル三重積の公式の類似性が見て取れます。

\begin{aligned} a×(b×c) &=b×(a×c)-c×(a×b) \\ &=b(a⋅c)-c(a⋅b) \end{aligned}

ただし先の計算で見たように 2 つのベクトル三重積の間で項を交換することで内積を構成しているため、単独で内積に組み替えることはできません。

\begin{aligned} b×(a×c)&≠b(a⋅c) \\ c×(a×b)&≠c(a⋅b) \end{aligned}

関連記事

四元数で 3 次元の回転公式を計算するのにベクトル三重積を使用します。

今回の前半部分をクリフォード代数で書き直した記事です。