スクリュー理論② 行列の指数関数

　はじめまして、[りょーつ](https://twitter.com/Gomachan_2021)といいます。高専出身の大学院1年生です。研究の専門は力学や機構学で、主に制御工学や数学に関する記事を書いています。
　本稿はスクリュー理論の解説(布教)をする2つ目の記事です。前回の記事は[こちら](https://qiita.com/Gomachan_2021/items/4a1bc967785b525bc857)です。スクリュー理論は剛体の運動を記述する手法で、ロボット工学などでよく使われています。日本の高専や大学ではDH法を使った記述を学ぶことが多いですが、国際的にはスクリュー理論を使った記述が一般的となってきているようです。スクリュー理論を扱う日本語の文献は少ないので、この記事が誰かの助けになればいいなと思います。

# 目次
[1.はじめに](#1-はじめに)
[2.行列指数の定義](#2-行列指数の定義)
[3.行列指数の基本特性](#3-行列指数の基本特性)
[4.行列指数の微分](#4-行列指数の微分)
[5.おわりに](#5-おわりに)
[付録](#付録)

# 1. はじめに
　本稿では指数関数の行列バージョンである**行列指数**の定義を紹介し、その基本特性を導出します。行列指数は工学部の講義だと制御工学やロボット工学で使うことが多いです。スクリュー理論では行列指数を用いて剛体のコンフィギュレーションの変換を記述します。
　線形代数の知識をすこし使います。本記事は数式の展開がメインとなりますが、できる限り丁寧に書きました。

# 2. 行列指数の定義
　行列指数は、指数関数を行列に拡張したものであり、以下の無限級数で定義されます。
 ```math
e^{At}
=
I + At + \dfrac{A^2}{2!}t^2 + \dfrac{A^3}{3!}t^3 \dots
=
\sum^\infty_{k=0} \dfrac{A^k}{k!}t^k
\tag{1}
```
(1)式は、通常の指数関数をマクローリン展開したものに対応しています。また、本記事では便宜上以下のように初項を分離して表記することもあります。
 ```math
e^{At}
=
I + \sum^\infty_{k=1} \dfrac{A^k}{k!}t^k
\tag{2}
```
このように定義することで行列を通常の指数関数と同じように扱うことができるようになり、工学を学ぶ上でとても幸せになれます。
　次章では、行列指数が有する指数関数らしい性質について紹介・証明していきます。

# 3. 行列指数の基本特性
　行列指数について以下の関係が成り立つことが知られています。$I$は単位行列です。

①$e^{At} e^{Bt} = e^{(A+B)t}$
②$e^{At} e^{-At} = I$
③$Ae^{At} = e^{At}A$

これらの性質は通常の指数関数でもなりたつ性質なので覚えやすいかと思います。それぞれ証明していきます。まず①の関係について左辺を展開すると
```math
e^{At}e^{Bt}
=
\biggl( I + At + \dfrac{A^2}{2!}t^2 + \dfrac{A^3}{3!}t^3 \dots \biggr)
\biggl( I + Bt + \dfrac{B^2}{2!}t^2 + \dfrac{B^3}{3!}t^3 \dots \biggr)
```
```math
= I + (A + B)t + \biggl( \dfrac{A^2}{2!} + AB + \dfrac{B^2}{2!} \biggr)t^2 + \biggl( \dfrac{A^3}{3!} + \dfrac{A^2B}{2!} + \dfrac{AB^2}{2!} + \dfrac{B^3}{3!} \biggr)t^3 + \dots
```
```math
= I + (A + B)t + \dfrac{1}{2!}\bigl( A^2 + 2AB + B^2 \bigr)t^2 +\dfrac{1}{3!} \bigl( A^3 + 3A^2B + 3AB^2 + B^3 \bigr)t^3 + \dots
```
```math
= I + (A + B)t + \dfrac{1}{2!} {(A+B)}^2 t^2 + \dfrac{1}{3!} {(A+B)}^3 t^3 + \dots
```
```math
= \sum^\infty_{k=0} \dfrac{{(A+B)}^k}{k!}t^k
= e^{(A+B)t}
\tag{3}
```
となるため、行列指数においても通常の指数関数と同様に指数の足し算で積を計算することができます。
　次に②を証明します。①の関係の右辺をマクローリン展開すると
```math
e^{(A+B)t}
= 
\sum^\infty_{k=0} \dfrac{{(A+B)}^k}{k!}t^k
= 
I + \sum^\infty_{k=1} \dfrac{{(A+B)}^k}{k!}t^k
\tag{4}
```
となります。(4)式に対して$B = -A$を代入し、①の関係式を使用すると
```math
e^{At}e^{-At}
=
e^{(A-A)t}
= 
I + \sum^\infty_{k=1} \dfrac{{(A-A)}^k}{k!}t^k
=
I
\tag{5}
```
が得られ、②の関係が証明できます。
　さいごに③を証明していきます。こちらも同様に左辺を展開すると
```math
Ae^{At}
=
A \sum^\infty_{k=0} \dfrac{A^k}{k!}t^k
=
\sum^\infty_{k=0} \dfrac{A^{(k+1)}}{k!}t^k
=
\Biggl( \sum^\infty_{k=0} \dfrac{A^k}{k!}t^k \Biggr) A
=
e^{At}A
\tag{6}
```
となり、正しいことが分かります。この関係式はスクリュー理論を使ってヤコビアンを計算する時などに使用します。ここで注意しないといけないのは、$Be^{At}$と$e^{At}B$は$AB\neq BA$の時に一致しないということです。一致しないことの証明は付録に書きました。
　証明の式展開は少し複雑ですが、行列指数も通常の指数関数と同様の特性を持つということが伝われば幸いです。

# 4. 行列指数の微分
　行列指数の微分は工学分野で非常によく登場します。性質自体は通常の指数関数と同じで以下のような関係が成り立ちます。

④$\dfrac{d}{dt}e^{At} = A e^{At} = e^{At}A$

本章では、④の関係を証明しておきます。左辺を(2)式の級数で表し、シンプルに微分すると
```math
\dfrac{d}{dt} e^{At}
=
\dfrac{d}{dt} \Biggl( I + \sum^\infty_{k=1} \dfrac{A^k}{k!}t^k \Biggr)
=
\sum^\infty_{k=1} \dfrac{A^k}{(k-1)!}t^{k-1}
\tag{7}
```
となります。ここで$n = k-1$として(7)式の右辺を変形すると
```math
\sum^\infty_{k=1} \dfrac{A^k}{(k-1)!}t^{k-1}
=
\sum^\infty_{n=0} \dfrac{A^{(n+1)}}{n!}t^{n}
=
A \sum^\infty_{n=0} \dfrac{A^n}{n!}t^{n}
=
A e^{At}
\tag{8}
```
が得られます。(7)式と(8)式および③の関係より、たしかに以下の関係④が成り立つといえます。
```math
\dfrac{d}{dt}e^{At} = A e^{At} = e^{At}A
\tag{9}
```

# 5. おわりに
　本稿では指数関数の行列バージョンである**行列指数**の定義を紹介し、その基本特性を導出しました。今回は数学的な内容がメインになってしまったのであまり面白い記事ではなかったかもしれません。来週以降は[前回の記事](https://qiita.com/Gomachan_2021/items/4a1bc967785b525bc857)で紹介した歪対称行列表現や今回紹介した行列指数を用いて回転運動を記述する手法について紹介したいと考えています。
　さいごまで読んでいただきありがとうございました！

# 付録
⑤$Be^{At} \neq e^{At}B \ \ \ (AB \neq BA)$

を証明します。⑤の関係の左辺を級数に展開すると
```math
Be^{At}
=
B\sum^\infty_{k=0} \dfrac{A^k}{k!}t^k
=
B + BAt + \sum^\infty_{k=2} \dfrac{A^k}{k!}t^k
\tag{10}
```
が得られます。同様に右辺を展開すると
```math
e^{At} B
=
\Biggl(  \sum^\infty_{k=0} \dfrac{A^k}{k!}t^k \Biggr) B  
=
B + ABt + \Biggl(  \sum^\infty_{k=2} \dfrac{A^k}{k!}t^k \Biggr) B
\tag{11}
```
となります。(10)式と(11)式の1次の項を比較すると、恒等的に以下が成り立ちます。
```math
Be^{At} = e^{At}B
\Rightarrow
AB = BA
\tag{12}
```
ゆえに⑤の関係が成立します。