はじめまして、りょーつといいます。高専出身の大学院2年生です。研究の専門は力学や機構学で、Qiitaでは主に制御工学や数学に関する記事を書いています。本稿はスクリュー理論の解説(布教)をする30個目の記事です。前回までの記事は以下のリンクを参照してください。
スクリュー理論① 外積の歪対称行列表現
スクリュー理論② 行列の指数関数
スクリュー理論③ 行列指数と回転行列の関係
スクリュー理論④ 回転行列の成分表示
スクリュー理論⑤ 回転行列による座標系の表現
スクリュー理論⑥ 剛体の速度・加速度の座標変換公式の導出
スクリュー理論⑦ 三次元空間における右手系の回転行列
スクリュー理論⑧ 回転行列による座標変換
スクリュー理論⑨ 回転行列によるベクトルの回転
スクリュー理論⑩ 回転行列と多様体の関係
スクリュー理論⑪ 同次変換行列の導入
スクリュー理論⑫ 同次変換行列による座標系の表現と基底変換
スクリュー理論⑬ 歪対称行列表現の回転座標変換
スクリュー理論⑭ 同次変換行列の微分とツイストの導入
スクリュー理論⑮ スクリューの導入と行列指数による同次変換行列の表現
スクリュー理論⑯ アジョイント変換
スクリュー理論⑰ 回転行列の行列対数
スクリュー理論⑱ 回転行列の積分
スクリュー理論⑲ 行列指数を用いた同次変換行列の成分表示
スクリュー理論⑳ 同次変換行列の行列対数
スクリュー理論㉑ シリアルリンクロボットアームの順運動学
スクリュー理論㉒ 円筒座標ロボットアームの順運動学
スクリュー理論㉓ 円筒座標ロボットアームのヤコビアン
スクリュー理論㉔ ボディ座標系を用いた順運動学
スクリュー理論㉕ アジョイント変換の図的イメージ
スクリュー理論㉖ 順運動学とアジョイント変換
スクリュー理論㉗ 空間ヤコビアン
スクリュー理論㉘ ボディヤコビアン
スクリュー理論㉙ 空間ヤコビアンの代数学的な導出
スクリュー理論は剛体の運動を記述する方法で、ロボット工学などでよく使われています。日本の高専や大学ではDH法を使った記述を学ぶことが多いですが、国際的にはスクリュー理論を使った記述が一般的となってきているようです。スクリュー理論を扱う日本語の文献は少ないので、この記事が誰かの助けになればいいなと思います。
目次
1.はじめに
2.Lie括弧積
3.ツイストの速度成分
4.アジョイント変換の指数表現
5.おわりに
6.付録
1. はじめに
今回の記事ではアジョイント変換の指数表現についてまとめてみようと思います。裏テーマとして、微分幾何学を学ぶ際に登場するLie括弧積についてフワッとしたイメージを解説できたらなあと思っています。Lie括弧積を微分幾何学の文脈で学ぼうとすると非常に抽象的であるため挫折しがちですが、物理的な意味と絡めると少し分かりやすくなるかと思います。
今週はアジョイント変換の定義やツイストの構成要素について考える必要があるので少し難しい内容になると思います。
2. Lie括弧積
まずはLie括弧積について解説します。ここでは一般化されたものではなく、3次元ベクトルの外積に限定した解説を行います。まずはざっくりと定義を見てみましょう。3次元ベクトル$\boldsymbol{a}, \boldsymbol{b}, \boldsymbol{c} \in \mathbb{R}^3$を考えます。このとき、Lie括弧積$[[\boldsymbol{a}], [\boldsymbol{b}]]$は以下のように定義されます。
[[\boldsymbol{a}], [\boldsymbol{b}]]
=
[\boldsymbol{a}][\boldsymbol{b}] - [\boldsymbol{b}][\boldsymbol{a}]
\tag{1}
非常に表記がややこしいのですが、$[[\boldsymbol{a}], [\boldsymbol{b}]]$の外側の括弧はLie括弧積を意味しており、$[\boldsymbol{a}],[\boldsymbol{b}]$の括弧は各ベクトルの外積に関する歪対称行列表現を意味しています。
ひとまずLie括弧積を定義してみましたが、これだけだと(1)式が何を意味しているのかピンときませんね。そこで具体的な意味について考えてみましょう。実は(1)式は以下のような意味を持っています。
[[\boldsymbol{a}], [\boldsymbol{b}]]
=
[\boldsymbol{a}][\boldsymbol{b}] - [\boldsymbol{b}][\boldsymbol{a}]
=
[\boldsymbol{a} \times \boldsymbol{b}]
\tag{2}
つまり、Lie括弧積$[[\boldsymbol{a}], [\boldsymbol{b}]]$の計算結果は中身のベクトル$\boldsymbol{a}, \boldsymbol{b}$を外積して得られるベクトルの歪対称行列表現ということです。
にわかに信じがたいと思うので確認してみましょう。(1)式と(2)式の右辺はともに外積の歪対称行列表現で記述できるため、あるベクトル$\boldsymbol{c}$を右から掛けてあげることでその実態を明らかにしてみます。まずは(1)式の右辺にベクトル$\boldsymbol{c}$を掛けてみましょう。$[\ \ \ ]$が外積を意味することに注意すれば以下のように展開できます。掛ける順番に注意してください。
\big (
[\boldsymbol{a}][\boldsymbol{b}] - [\boldsymbol{b}][\boldsymbol{a}]
\big )
\boldsymbol{c}
=
[\boldsymbol{a}][\boldsymbol{b}] \boldsymbol{c}
-
[\boldsymbol{b}][\boldsymbol{a}] \boldsymbol{c}
=
\boldsymbol{a} \times (\boldsymbol{b} \times \boldsymbol{c})
-
\boldsymbol{b} \times (\boldsymbol{a} \times \boldsymbol{c})
\therefore
\big (
[\boldsymbol{a}][\boldsymbol{b}] - [\boldsymbol{b}][\boldsymbol{a}]
\big )
\boldsymbol{c}
=
\boldsymbol{a} \times (\boldsymbol{b} \times \boldsymbol{c})
+
\boldsymbol{b} \times (\boldsymbol{c} \times \boldsymbol{a})
\tag{3}
同様に(2)式の右辺にもベクトル$\boldsymbol{c}$を掛けてみましょう。
[\boldsymbol{a} \times \boldsymbol{b}]\ \boldsymbol{c}
=
(\boldsymbol{a} \times \boldsymbol{b}) \times \boldsymbol{c}
\therefore
[\boldsymbol{a} \times \boldsymbol{b}]\ \boldsymbol{c}
=
- \boldsymbol{c} \times (\boldsymbol{a} \times \boldsymbol{b})
\tag{4}
なんだか見たことあるベクトル三重積が得られましたね。ここでヤコビの恒等式を使います。ヤコビの恒等式は以下のように表される式です。ベクトル解析の講義に出てくることが多いかなと思います。
\boldsymbol{a} \times (\boldsymbol{b} \times \boldsymbol{c})
+
\boldsymbol{b} \times (\boldsymbol{c} \times \boldsymbol{a})
+
\boldsymbol{c} \times (\boldsymbol{a} \times \boldsymbol{b})
=
\boldsymbol{0}
\tag{5}
(5)式の導出過程は少し長くなるので付録に示しました。(5)式を変形し、(3)式に代入すると以下が得られます。
\big (
[\boldsymbol{a}][\boldsymbol{b}] - [\boldsymbol{b}][\boldsymbol{a}]
\big )
\boldsymbol{c}
=
-\boldsymbol{c} \times (\boldsymbol{a} \times \boldsymbol{b})
\tag{6}
(4)式と(6)式の右辺が等しいので、(2)式を示すことができました。
実際どんなふうにLie括弧積を使うのか見てみましょう。例えば角速度ベクトル$\boldsymbol{\omega}$と位置ベクトル$\boldsymbol{p}$のLie括弧積を取ってみましょう。
[[\boldsymbol{\omega}], [\boldsymbol{p}]]
=
[\boldsymbol{\omega}][\boldsymbol{p}] - [\boldsymbol{p}][\boldsymbol{\omega}]
=
[\boldsymbol{\omega}\times \boldsymbol{p}]
\tag{7}
(7)式の右辺は回転によって生じる接線速度の歪対称行列表現を意味しています。このように物理では「外積の外積」を考えたいときにLie括弧積の考え方はとても重宝します。ちなみに(7)式は第4章でも登場します。
3. ツイストの速度成分
本章ではツイスト$\boldsymbol{\nu}$の構成要素である速度成分$\boldsymbol{v}$について復習します。基本的にはこちらの記事を2章の内容を含みながら発展させたものになります。
基準座標系を$\Sigma_s$、ボディ座標系を$\Sigma_b$とします。基準座標系$\Sigma_s$から見たボディ座標系$\Sigma_b$の原点位置を位置ベクトル$\boldsymbol{p_{sb}}$、姿勢を回転行列$R_{sb}$とします。また、空間上にあるベクトル$\boldsymbol{r}$を取り、$\boldsymbol{r}$を基準座標系$\Sigma_s$から見たときの座標を$\boldsymbol{r_s}$、ボディ座標系$\Sigma_b$から見たときの座標を$\boldsymbol{r_b}$とします。
同次変換行列でよくやる変換により、$\boldsymbol{r_s}$と$\boldsymbol{r_b}$の間には以下の関係があります。
\boldsymbol{r_s}
=
\boldsymbol{p_{sb}}
+
R_{sb} \boldsymbol{r_b}
\tag{8}
ここでボディ座標系$\Sigma_b$から見た$\boldsymbol{r}$の座標が一定になる場合
\frac{d\boldsymbol{r_b}}{dt}
=
\boldsymbol{0}
\tag{9}
を置きます。これはベクトル$\boldsymbol{r}$がボディ座標系と一緒に動いていることを意味します。
では(8)式を1回時間微分してみましょう。
\frac{d \boldsymbol{r_s}}{dt}
=
\frac{d\boldsymbol{p_{sb}}}{dt}
+
\frac{d R_{sb}}{dt} \boldsymbol{r_b}
+
R_{sb} \frac{d \boldsymbol{r_b}}{dt}
\therefore
\frac{d \boldsymbol{r_s}}{dt}
=
\frac{d\boldsymbol{p_{sb}}}{dt}
+
[\boldsymbol{\omega_s}] R_{sb} \boldsymbol{r_b}
\tag{10}
ここで定点$\boldsymbol{r_b}$を基準座標系$\Sigma_s$の原点としてみましょう。
\boldsymbol{r_b} = \boldsymbol{p_{bs}}
\therefore
R_{sb} \boldsymbol{r_b} = R_{sb} \boldsymbol{p_{bs}} = -\boldsymbol{p_{sb}}
\tag{11}
このとき、(10)式の左辺は基準座標系$\Sigma_s$の原点にあるボディに生じている速度を意味し、ツイスト$\boldsymbol{\nu_s}$の速度成分$\boldsymbol{v_s}$になることが分かります。式で表すと以下のようになります。
\boldsymbol{v_s}
=
\frac{d\boldsymbol{p_{sb}}}{dt}
-
[\boldsymbol{\omega_s}] \boldsymbol{p_{sb}}
=
\dot{\boldsymbol{p_{sb}}}
-
\boldsymbol{\omega_s} \times \boldsymbol{p_{sb}}
\tag{12}
ではここで速度$\boldsymbol{v_s}$の歪対称行列表現$[\boldsymbol{v_s}]$について考えてみましょう。外積の線形性およびLie括弧積の定義より以下が成り立ちます。
[\boldsymbol{v_s}]
=
[\dot{\boldsymbol{p_{sb}}}]
-
[\boldsymbol{\omega_s} \times \boldsymbol{p_{sb}}]
=
[\dot{\boldsymbol{p_{sb}}}]
-
[[\boldsymbol{\omega_s}]\ , \ [\boldsymbol{p_{sb}}]]
\tag{13}
少しツイスト$\boldsymbol{\nu}$について理解が深まりましたね。(13)式も第4章で使用します。
4. アジョイント変換の指数表現
本章では回転行列や同次変換行列と同様にアジョイント表現を1回微分して得られる微分方程式を解くことで、アジョイント表現が指数関数で表されることを確かめます。そもそもアジョイント変換とは、あるツイスト$\boldsymbol{\nu}$を異なる座標系で観測するための変換であり、ボディ座標系$\Sigma_b$のツイスト$\boldsymbol{\nu_b}$を基準座標系$\Sigma_s$で観測する際は以下のような変換則により変換できます。
\boldsymbol{\nu_s}
=
Ad_{T_{sb}}(\boldsymbol{\nu_b})
\tag{14}
ここで$T_{sb}$は基準座標系$\Sigma_s$から見たボディ座標系$\Sigma_b$の位置姿勢を意味しています。アジョイント変換の実体は線形変換であり、その表現行列を「アジョイント表現」と呼びます。アジョイント表現は$[Ad_{T_{sb}}]$のように表記しますが、これは歪対称行列表現とは異なりますのでご注意ください。(14)式をアジョイント表現で記述すると以下のようになります。
\boldsymbol{\nu_s}
=
[Ad_{T_{sb}}]\boldsymbol{\nu_b}
\tag{15}
また、アジョイント表現$[Ad_{T_{sb}}]$は以下のようなブロック行列で表されます。
[Ad_{T_{sb}}]
=
\begin{bmatrix}
R_{sb} & O\\
[\boldsymbol{p_{sb}}]R_{sb} & R_{sb}
\end{bmatrix}
\tag{16}
では(16)式のアジョイント表現を1回微分してみましょう。
\frac{d[Ad_{T_{sb}}]}{dt}
=
\begin{bmatrix}
\dot{R_{sb}} & O\\
[\dot{\boldsymbol{p_{sb}}}]R_{sb}+[\boldsymbol{p_{sb}}]\dot{R_{sb}} & \dot{R_{sb}}
\end{bmatrix}
=
\begin{bmatrix}
[\boldsymbol{\omega_s}]R_{sb} & O\\
[\dot{\boldsymbol{p_{sb}}}]R_{sb} + [\boldsymbol{p_{sb}}][\boldsymbol{\omega_s}]R_{sb} & [\boldsymbol{\omega_s}]R_{sb}
\end{bmatrix}
\tag{17}
少し複雑な項が出てきましたね。ここで以下の関係を用います。
[\dot{\boldsymbol{p_{sb}}}] + [\boldsymbol{p_{sb}}][\boldsymbol{\omega_s}]
=
[\boldsymbol{v_s}] + [\boldsymbol{\omega_s}][\boldsymbol{p_{sb}}]
\tag{18}
しっかり(18)式も証明しておきましょう。(13)式の右辺をLie括弧積の定義にしたがって(7)式を参考に展開すると以下の関係が得られます。
[\boldsymbol{v_s}]
=
[\dot{\boldsymbol{p_{sb}}}]
-
\big(
[\boldsymbol{\omega_s}][\boldsymbol{p_{sb}}]
-
[\boldsymbol{p_{sb}}][\boldsymbol{\omega_s}]
\big )
=
[\dot{\boldsymbol{p_{sb}}}]
+
[\boldsymbol{p_{sb}}][\boldsymbol{\omega_s}]
-
[\boldsymbol{\omega_s}][\boldsymbol{p_{sb}}]
\tag{19}
(19)式の右辺第3項を移行すれば(18)式が得られますね。
準備は整ったので(18)式を(17)式に代入して整理してみましょう。すると見慣れた微分方程式が得られます。
\frac{d[Ad_{T_{sb}}]}{dt}
=
\begin{bmatrix}
[\boldsymbol{\omega_s}]R_{sb} & O\\
[\boldsymbol{v_s}] R_{sb}
+
[\boldsymbol{\omega_s}][\boldsymbol{p_{sb}}]
R_{sb}
& [\boldsymbol{\omega_s}]R_{sb}
\end{bmatrix}
=
\begin{bmatrix}
[\boldsymbol{\omega_s}] & O\\
[\boldsymbol{v_s}] & [\boldsymbol{\omega_s}]
\end{bmatrix}
\begin{bmatrix}
R_{sb} & O\\
[\boldsymbol{p_{sb}}]R_{sb} & R_{sb}
\end{bmatrix}
\therefore
\frac{d[Ad_{T_{sb}}]}{dt}
=
\begin{bmatrix}
[\boldsymbol{\omega_s}] & O\\
[\boldsymbol{v_s}] & [\boldsymbol{\omega_s}]
\end{bmatrix}
[Ad_{T_{sb}}]
\tag{20}
(20)式は回転行列や同次変換行列の時にも登場した微分方程式です!
(20)式の右辺においてアジョイント表現$[Ad_{T_{sb}}]$にかかる係数行列をLie代数要素と呼びます。回転行列における$[\boldsymbol{\omega_s}]$や同次変換行列における$[\boldsymbol{\zeta}]$がこれにあたります。アジョイント変換のLie代数要素は以下のように小文字で表記することが多いようです。
ad_{\boldsymbol{\nu_s}}
=
\begin{bmatrix}
[\boldsymbol{\omega_s}] & O\\
[\boldsymbol{v_s}] & [\boldsymbol{\omega_s}]
\end{bmatrix}
\tag{21}
添え字が$T_{sb}$から$\boldsymbol{\nu_s}$に変化したのは、構成要素に時刻情報を含まないためです。
角速度$\boldsymbol{\omega_s}$の大きさを正規化すれば、時刻$t$と回転角$\theta$は同一視できるので、アジョイント表現の一般解$[Ad_{T_{sb}}] (\theta)$は初期値$[Ad_{T_{sb}}] (0)$を用いて以下のように表すことができます。
[Ad_{T_{sb}}] (\theta)
=
e^{ad_{\boldsymbol{\nu_s}} \theta} [Ad_{T_{sb}}] (0)
\tag{22}
少し見慣れない形でややこしいですが、(22)式によってアジョイント変換を行列指数で表現することができました!
行列指数で表すと嬉しくなるポイントについて個人的な見解を述べておきます。まず、指数関数と同じように扱えるため、微分する時にとても見通しが良くなります(^▽^)
アジョイント変換を微分する事があるのか?と思う方もいるかもしれませんが、たくさんあります。最近空間ヤコビアンがアジョイント変換したスクリューを並べることで記述できることを紹介しました。では、ヤコビアンを微分すると..? とても楽しくなりそうです。
5. おわりに
今回の記事では、Lie代数やLie括弧積について少しだけ紹介し、アジョイント変換が行列指数を用いて記述できることを示しました。もともと微分幾何学を趣味でやっていたため、Lie代数を独学することが大変だとわかったので、本記事が1つの分かりやすい例として誰かの助けになればいいなあと考えています。
そろそろキャチロボのロボットの解説記事を書かないと年末を迎えてしまいそうなので、来週は特異姿勢の記事を公開できればなあと思っています。SI2025という学会やIREXの出展があるので12月は忙しくなりそうです。記事ストックしておかないと..
とにかく今週も最後まで読んでいただき、ありがとうございました!
6. 付録
ベクトルの外積に関するヤコビの恒等式を導出しておきます。なお、ヤコビの恒等式はLie代数を用いてベクトルの外積以外にも拡張できるようです。一般化したヤコビの恒等式はLie代数要素$X,Y,Z$とLie括弧積により以下のようにまとめられます。
[X,[Y,Z]] + [Y, [Z,X]] + [Z,[X,Y]] = O
\tag{a}
自分はLie代数についてあまり詳しくないので(23)式についてはもう少し理解してから解説記事を出します。
では本題のベクトルの外積に関するヤコビの恒等式を導出していきます。導出すべき式は以下のとおりです(再掲)。
\boldsymbol{a} \times (\boldsymbol{b} \times \boldsymbol{c})
+
\boldsymbol{b} \times (\boldsymbol{c} \times \boldsymbol{a})
+
\boldsymbol{c} \times (\boldsymbol{a} \times \boldsymbol{b})
=
\boldsymbol{0}
\tag{b}
正規直交基底${\boldsymbol{i},\boldsymbol{j},\boldsymbol{k}}$を用いてベクトル$\boldsymbol{a},\boldsymbol{b},\boldsymbol{c}$を以下のように成分表示します。
\boldsymbol{a}
=
a_1 \boldsymbol{i} + a_2 \boldsymbol{j} + a_3 \boldsymbol{k}
\tag{c}
\boldsymbol{b}
=
b_1 \boldsymbol{i} + b_2 \boldsymbol{j} + b_3 \boldsymbol{k}
\tag{d}
\boldsymbol{c}
=
c_1 \boldsymbol{i} + c_2 \boldsymbol{j} + c_3 \boldsymbol{k}
\tag{e}
では順々に計算していきましょう。外積は行列式で表すことができるためベクトルどうしの外積は以下のように与えられます。
\boldsymbol{a} \times \boldsymbol{b}
=
\begin{vmatrix}
\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\
a_1 & a_2 & a_3 \\
b_1 & b_2 & b_3 \\
\end{vmatrix}
=
(a_2 b_3 - a_3 b_2)\boldsymbol{i}
+
(a_3 b_1 - a_1 b_3)\boldsymbol{j}
+
(a_1 b_2 - a_2 b_1)\boldsymbol{k}
\tag{f}
\boldsymbol{b} \times \boldsymbol{c}
=
\begin{vmatrix}
\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\
b_1 & b_2 & b_3 \\
c_1 & c_2 & c_3 \\
\end{vmatrix}
=
(b_2 c_3 - b_3 c_2)\boldsymbol{i}
+
(b_3 c_1 - b_1 c_3)\boldsymbol{j}
+
(b_1 c_2 - b_2 c_1)\boldsymbol{k}
\tag{g}
\boldsymbol{c} \times \boldsymbol{a}
=
\begin{vmatrix}
\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\
c_1 & c_2 & c_3 \\
a_1 & a_2 & a_3 \\
\end{vmatrix}
=
(c_2 a_3 - c_3 a_2)\boldsymbol{i}
+
(c_3 a_1 - c_1 a_3)\boldsymbol{j}
+
(c_1 a_2 - c_2 a_1)\boldsymbol{k}
\tag{h}
これだけでもかなり複雑ですが、さらに(f)~(h)式を用いてもう一度外積を計算します。
\boldsymbol{c} \times (\boldsymbol{a} \times \boldsymbol{b})
=
\begin{vmatrix}
\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\
c_1 & c_2 & c_3 \\
a_2 b_3 - a_3 b_2 & a_3 b_1 - a_1 b_3 & a_1 b_2 - a_2 b_1 \\
\end{vmatrix}
=
(a_1 b_2 c_2 - a_2 b_1 c_2 - a_3 b_1 c_3 + a_1 b_3 c_3)\boldsymbol{i}
+
(a_2 b_3 c_3 - a_3 b_2 c_3 - a_1 b_2 c_1 + a_2 b_1 c_1)\boldsymbol{j}
+
(a_3 b_1 c_1 - a_1 b_3 c_1 - a_2 b_3 c_2 + a_3 b_2 c_2)\boldsymbol{k}
\tag{i}
\boldsymbol{a} \times (\boldsymbol{b} \times \boldsymbol{c})
=
\begin{vmatrix}
\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\
a_1 & a_2 & a_3 \\
b_2 c_3 - b_3 c_2 & b_3 c_1 - b_1 c_3 & b_1 c_2 - b_2 c_1 \\
\end{vmatrix}
=
(a_2 b_1 c_2 - a_2 b_2 c_1 - a_3 b_3 c_1 + a_3 b_1 c_3 )\boldsymbol{i}
+
(a_3 b_2 c_3 - a_3 b_3 c_2 - a_1 b_1 c_2 + a_1 b_2 c_1 )\boldsymbol{j}
+
(a_1 b_3 c_1 - a_1 b_1 c_3 - a_2 b_2 c_3 + a_2 b_3 c_2 )\boldsymbol{k}
\tag{j}
\boldsymbol{b} \times (\boldsymbol{c} \times \boldsymbol{a})
=
\begin{vmatrix}
\boldsymbol{i} & \boldsymbol{j} & \boldsymbol{k} \\
b_1 & b_2 & b_3 \\
c_2 a_3 - c_3 a_2 & c_3 a_1 - c_1 a_3 & c_1 a_2 - c_2 a_1 \\
\end{vmatrix}
=
(a_2 b_2 c_1 - a_1 b_2 c_2 - a_1 b_3 c_3 + a_3 b_3 c_1 )\boldsymbol{i}
+
(a_3 b_3 c_2 - a_2 b_3 c_3 - a_2 b_1 c_1 + a_1 b_1 c_2 )\boldsymbol{j}
+
(a_1 b_1 c_3 - a_3 b_1 c_1 - a_3 b_2 c_2 + a_2 b_2 c_3 )\boldsymbol{k}
\tag{k}
これでやっと材料がそろいました。あとは足し合わせていくだけです。とても長くなりそうなので、ヤコビ恒等式の左辺の第$\boldsymbol{i}$成分について考えましょう。(i)~(k)式の右辺の第$\boldsymbol{i}$成分をすべて足すと以下の関係が得られます。
(a_1 b_2 c_2 - a_2 b_1 c_2 - a_3 b_1 c_3 + a_1 b_3 c_3)
+
(a_2 b_1 c_2 - a_2 b_2 c_1 - a_3 b_3 c_1 + a_3 b_1 c_3 )
+
(a_2 b_2 c_1 - a_1 b_2 c_2 - a_1 b_3 c_3 + a_3 b_3 c_1 )
=
(a_1 b_2 c_2 - a_1 b_2 c_2)
+
(a_1 b_3 c_3 - a_1 b_3 c_3)
+
(a_2 b_1 c_2 - a_2 b_1 c_2)
+
(a_3 b_1 c_3 - a_3 b_1 c_3)
+
(a_2 b_2 c_1 - a_2 b_2 c_1)
+
(a_3 b_3 c_1 - a_3 b_3 c_1)
=
0
\tag{l}
$\boldsymbol{j}$成分と$\boldsymbol{k}$成分も同様に計算すると以下の関係がなりたちます。
(a_2 b_3 c_3 - a_3 b_2 c_3 - a_1 b_2 c_1 + a_2 b_1 c_1)
+
(a_3 b_2 c_3 - a_3 b_3 c_2 - a_1 b_1 c_2 + a_1 b_2 c_1 )
+
(a_3 b_3 c_2 - a_2 b_3 c_3 - a_2 b_1 c_1 + a_1 b_1 c_2)
=
(a_2 b_3 c_3 - a_2 b_3 c_3)
+
(a_2 b_1 c_1 - a_2 b_1 c_1 )
+
(a_3 b_2 c_3 - a_3 b_2 c_3)
+
(a_1 b_2 c_1 - a_1 b_2 c_1)
+
(a_3 b_3 c_2 - a_3 b_3 c_2)
+
(a_1 b_1 c_2 - a_1 b_1 c_2)
=
0
\tag{m}
(a_3 b_1 c_1 - a_1 b_3 c_1 - a_2 b_3 c_2 + a_3 b_2 c_2)
+
(a_1 b_3 c_1 - a_1 b_1 c_3 - a_2 b_2 c_3 + a_2 b_3 c_2 )
+
(a_1 b_1 c_3 - a_3 b_1 c_1 - a_3 b_2 c_2 + a_2 b_2 c_3 )
=
(a_3 b_1 c_1 - a_3 b_1 c_1)
+
(a_3 b_2 c_2 - a_3 b_2 c_2)
+
(a_1 b_3 c_1 - a_1 b_3 c_1)
+
(a_2 b_3 c_2 - a_2 b_3 c_2)
+
(a_1 b_1 c_3 - a_1 b_1 c_3)
+
(a_2 b_2 c_3 - a_2 b_2 c_3)
=
0
\tag{n}
以上のことから、ヤコビ恒等式の左辺のすべての成分が0になることが分かったので、
\boldsymbol{a} \times (\boldsymbol{b} \times \boldsymbol{c})
+
\boldsymbol{b} \times (\boldsymbol{c} \times \boldsymbol{a})
+
\boldsymbol{c} \times (\boldsymbol{a} \times \boldsymbol{b})
=
0 \boldsymbol{i} + 0 \boldsymbol{j} + 0 \boldsymbol{k}
\therefore
\boldsymbol{a} \times (\boldsymbol{b} \times \boldsymbol{c})
+
\boldsymbol{b} \times (\boldsymbol{c} \times \boldsymbol{a})
+
\boldsymbol{c} \times (\boldsymbol{a} \times \boldsymbol{b})
=
\boldsymbol{0}
\tag{o}
といった具合にヤコビの恒等式が得られます。計算も大変ですが、Qiitaに打ち込むのが一番大変でした..笑