CV・CG・ロボティクスのためのリー群・リー代数入門: (2) 行列指数関数
前回のエントリでわかったことは,どうやら行列指数関数なるものによってリー代数の元をリー群に写像することができそうだ (1 軸回転群の場合については示したが一般論はこれからである) ということである.そのような写像を指数写像と呼ぶ.
「指数写像じゃなく行列指数関数って呼べばいいじゃないか.どうして用語を増やすんだ?」という声が聞こえてきそうだが,リー群には行列で表せないようなものもあって,そのような一般の場合に同様のはたらきをするものも含めて指数写像と呼んでいる.リー群が行列で表せる場合は行列指数関数に一致する.本テキストでは行列で表せるもの (線形リー群とか行列リー群とか呼ばれる) しか扱わないので,この点を気にする必要はあまりない.実際上は,リー代数とリー群の間の写像であることを意識するときは指数写像と呼び,そうでないとき,あるいは具体的な行列としての計算方法を意識するときは行列指数関数と呼ぶことが多いように思う.
この節では行列指数関数の定義とその性質や関連時刻を述べる.基本的には線形代数の復習なので,自信のある人は読み飛ばしてよい.
一方,自信のない人にとってはこのエントリを読破するのは結構大変だと思う.まずは緑色の枠線で囲まれた重要な結果だけざっと眺めてから先に進み,後で引っかかったときに戻ってきて詳細説明を読む,という方針でもよいと思う.
テイラー展開
行列指数関数はテイラー展開をもとにして定義されるので,まずそこから確認していく.関数 $f(x)$ の $x = 0$ まわりのテイラー展開は,よく知られているとおり以下で与えられる.
これを真面目に証明するためには,この無限級数が収束するかどうか,収束するならどういう範囲かという議論をしなくてはならず話が長くなるが,さくっと省略して,もし
$$
\begin{align}
f(x) &= a_0 + a_1 x + a_2 x^2 + \cdots + a_k x^k + \cdots
\end{align}
$$ という級数が収束するとしたら係数 $a_k$ はどういう形でないといけないか,ということだけ考えるならば話は簡単である.両辺を $k$ 回微分してから $x = 0$ を代入したものを $a_k$ について解けばよい.
代表的な関数のテイラー展開
$\exp x$ は何回微分しても $\exp x$ であり,$\exp 0 = 1$ であることから,すべての $k$ に対して $f^{(k)} = 1$ である.よって
である.$\cos x$,$\sin x$,$\log x$ についても同じように $f^{(k)}$ を求めてみると,以下のようになる.
収束性の議論は省略するが,$\exp x$ と $\cos x$ と $\sin x$ については,あらゆる $x$ について収束することが知られているので,いつでも安心してこの展開形を使ってよい.
一方 $\log x$ の場合,この展開形の収束が保証できるのは $0 < x < 2$ の範囲だけであることに注意を要する.
行列指数関数の定義
$\exp x$ のテイラー展開を一般化して,正方行列 $\m{X}$ の行列指数関数 $\exp \m{X}$ を以下のように定義する.$e^\m{X}$ とも書く.
行列指数関数の性質
積法則
群の基本演算は積なので,行列指数関数どうしの積がどのような形になるかは重要な問題である.
行列指数関数の計算規則は,たいていスカラの場合の指数関数と同様に成り立つのだが,積法則については注意が必要で,以下のように条件付きになる.
$\m{X}\m{Y} = \m{Y}\m{X}$ が成立するとき,$\m{X}$ と $\m{Y}$ は可換であると言う.すなわち $e^x e^y = e^{x+y}$ に相当する計算規則が $\exp\m{X} \exp\m{Y}$ に使えるのは,$\m{X}$ と $\m{Y}$ の積が可換なときに限る.
そうなる理由は以下のようにしてわかる.$\exp \m{X}$ と $\exp \m{Y}$ の定義どうしをかけ合わせて次数が同じもの (2 次なら $\m{X}^2$ と $\m{X}\m{Y}$ と $\m{Y}^2$ の項,3 次なら $\m{X}^3$ と $\m{X}^2 \m{Y}$ と $\m{X} \m{Y}^2$ と $\m{Y}^3$ の項) をまとめて整理すると,$n$ 次の項 $\m{P}_n$ は
$$
\begin{align}
\m{P}_n &= \sum_{k = 0}^{n} \frac{1}{k!} \m{X}^k \cdot \frac{1}{(n-k)!} \m{Y}^{n-k}
\end{align}
$$ と書ける.ところで $n$ 個から $k$ 個を選ぶ組合せの数 ${}_n\mathrm{C}_k$ が $\displaystyle \frac{n!}{(n-k)! k!}$ であることを思い出すとこれは
$$
\begin{align}
\m{P}_n &= \frac{1}{n!} \sum_{k = 0}^{n} {}_n\mathrm{C}_k \, \m{X}^k \m{Y}^{n-k}
\end{align}
$$ と表せる.一方 $(\m{X} + \m{Y})^n$ を展開したとき,$\m{X}$ と $\m{Y}$ が可換であれば,$\m{X}\m{Y}$ と $\m{Y}\m{X}$ を同類項としてまとめたり,$\m{X}\m{Y}\m{Y}$ と $\m{Y}\m{X}\m{Y}$ と $\m{Y}\m{Y}\m{X}$ をまとめたりすることで
$$
\begin{align}
(\m{X} + \m{Y})^n = \sum_{k = 0}^{n} {}_n\mathrm{C}_k \, \m{X}^k \m{Y}^{n-k}
\end{align}
$$ と書ける (二項展開) から
$$
\begin{align}
\m{P}_n &= \frac{1}{n!} (\m{X} + \m{Y})^n
\end{align}
$$ が成り立って積法則が示されるのだけど,可換でないならば同類項をまとめられないので成り立たない.
可換な場合の積法則の簡単な応用として以下のものなどは利用頻度が高い.
微分 (行列全般)
以降で行列の微分を頻繁に使うので,その計算について念のため確認しておく.
行列値を取る関数 $\m{P}(t)$ の $t$ による微分の定義は,前回のエントリで出て来たとおり
$$
\begin{align}
\m{P}(t)' &= \lim_{\delta t \to 0} \frac{\m{P}(t + \delta t) - \m{P}(t)}{\delta t}
\end{align}
$$ である.右辺分子は要素ごとの減算で,それら全要素を分母のスカラで割るのだから,結局のところ行列の各要素を個別に微分するのと同じである.
だからスカラ関数と定数値行列の積 $f(t) \m{X}$ の微分は単に $f(t)' \m{X}$ とすればよい.
以降では行列積の微分 $(\m{P}(t)\m{Q}(t))'$ をよく使う.行列積の各要素は,元の 2 つの行列から要素を 1 つずつ持ってきて積を作り,それらを複数足し合わせた形になる.それを微分することになるので,結局普通の積の微分の公式と同様に
$$
\begin{align}
(\m{P}(t)\m{Q}(t))' &= \m{P}(t)' \m{Q}(t) + \m{P}(t) \m{Q}(t)'
\end{align}
$$ とすればよいことがわかる.$\m{P}(t)$ と $\m{Q}(t)$ は非可換かも知れないので,乗算の順序を不用意に入れ替えないようにだけ注意したい.
特に,かけ合わせる行列の一方が定数値の場合は,定数値行列の微分は零行列になるので,$(\m{P}(t) \m{X})' = \m{P}(t)' \m{X}$ とか $(\m{X} \m{Q}(t))' = \m{X}\m{Q}(t)' $ とか,まあ要するに普通にやればよい.
微分 (行列指数関数)
さて話を行列指数関数に戻す.
指数関数の微分法則 $\displaystyle \frac{d}{dt}\exp \alpha t = \alpha \exp \alpha t$ は指数関数の概念の根本をなす重要な公式だが,行列の場合も同じような公式が成り立つ.
1 つ目のイコールが成り立つ理由は,$\exp t\m{X}$ の定義をそのまま微分することで
$$
\begin{align}
\frac{d}{dt} \exp t\m{X} &= \frac{d}{dt}(\m{I} + t\m{X} + \frac{1}{2!} t^2 \m{X}^2 + \frac{1}{3!} t^3 \m{X}^3 + \cdots)\\
&= \m{X} + \frac{2}{2!} t \m{X}^2 + \frac{3}{3!} t^2 \m{X}^3 + \cdots\\
&= \m{X}(\m{I} + t \m{X} + \frac{1}{2!} t^2 \m{X}^2 + \cdots)\\
&= \m{X} \exp t\m{X}
\end{align}
$$ のようにわかる.途中で $\m{X}$ を左側にくくり出したところは,右側にくくり出しても構わないので,2 つめのイコールのように書き直してもよい.
微分方程式の解としての指数写像
ベクトル値関数 $\v{p}(t)$ について
であることは,この解を実際に代入してさっきの微分の公式を適用すればわかる.(本来は解の存在性や一意性を確認する必要があるがバッサリ略)
行列値関数 $\m{P}(t)$ についても全く同様に,
が確認できる.$\m{P}(0)$ が $\m{X}$ と可換ならこれら 2 つは同じものである.
前回のエントリの最後で出てきたのは,この 1 つめの形の微分方程式であった.よってその解は,すなわち 1 軸回転行列 $\m{R}(\theta)$ は,その $\theta = 0$ における微分 $\m{X}$ を使って $\exp{\theta \m{X}}$ として表せることが,これでようやく説明できたことになる.
めでたしめでたし…と終わりたくなるところを我慢して,後に必要となる性質も続けて見ていこう.
連続複利の公式
スカラの場合の指数関数を関数列の極限として得る方法として有名なものに
$$
\begin{align}
(1 + \frac{x}{n})^n &\to \exp x \,\,(n \to \infty)
\end{align}
$$ がある.左辺は「年利 $x$ で $1/n$ 年ごとに利息を受け取るとして複利計算したとき,1 年後に受け取る額は元金の何倍か」を表しており,その極限は連続複利計算と呼ばれる.$x = 1$ を考えて $e$ の定義とすることも多い.
同様の公式が行列指数関数の場合も成り立つ.
これが行列指数関数の定義と一致することを見るには,左辺を二項展開して
$$
\begin{align}
(\m{I} + \frac{1}{n} \m{X})^n
&= \sum_k {}_n\mathrm{C}_k \frac{1}{n^k} \m{X}^k\\
&= \sum_k \frac{n(n-1)(n-2) \cdots (n - k + 1)}{k!} \frac{1}{n^k} \m{X}^k\\
&= \sum_k \frac{(1-\frac{1}{n})(1-\frac{2}{n}) \cdots (1 - \frac{k - 1}{n})}{k!} \m{X}^k\\
&\to \sum_k \frac{1}{k!} \m{X}^k = \exp \m{X}
\end{align}
$$ とすればよい.
転置
転置が保存されるのは定義から簡単にわかる.
逆行列
$\m{X}$ と $-\m{X}$ の積は可換だから,積法則から
$$
\begin{align}
\exp(-\m{X}) \exp \m{X} &= \exp \m{X} \exp(-\m{X}) = \exp(\m{X} - \m{X}) = \exp \m{O} = \m{I}
\end{align}
$$ が言える.つまり $\exp(-\m{X})$ は $\exp(\m{X})$ の逆行列である.
ちょっと注意しておくと,これは指数写像の逆写像 (リー群からリー代数への写像) とは別物である.そうではなくて,$\exp \m{X}$ という行列の逆行列 (リー群における逆元) を指している.逆写像の方はすぐ後に述べるように対数写像である.
固有値
証明は,$\m{X} = \m{P}\inv \m{\Lambda} \m{P}$ と対角化可能な場合は比較的簡単で,
$$
\begin{align}
\exp \m{X} &= \exp \m{P}\inv \m{\Lambda} \m{P}\\
&= \m{P}\inv (\exp \m{\Lambda}) \m{P}\\
&= \m{P}\inv (\exp\diag\{\lambda_1, \lambda_2, \cdots, \lambda_n\}) \m{P}\\
&= \m{P}\inv \diag\{\exp\lambda_1, \exp\lambda_2, \cdots, \exp\lambda_n\} \m{P}
\end{align}
$$ であり,行列の固有値は相似変換の前と後で変化しないことから示せる.
対角化できない場合も,ジョルダン標準形を使って同じ結論を得ることができる.(ジョルダン標準形は上三角行列であること,上三角行列を $n$ 乗すると対角成分が単に $n$ 乗された上三角行列になること,よって行列指数関数を定義通り計算したときの対角成分は,もとの対角成分それぞれを指数関数に渡した結果になること,上三角行列の対角成分には固有値が並んでいることなどを使う)
行列対数関数
行列対数関数は,$\log x$ のテイラー展開と同じ形の
$$
\begin{align}
\log \m{X} &= (\m{X} - \m{I}) - \frac{(\m{X} - \m{I})^2}{2} + \frac{(\m{X} - \m{I})^3}{3} - \cdots + (-1)^{k+1} \frac{(\m{X} - \m{I})^k}{k} + \cdots
\end{align}
$$ として定義できる.…のだが,この定義は意外と使いにくい.なにしろ元の $\log x$ のテイラー展開は収束範囲が $0 < x < 2$ と狭いので,この行列バージョンもやはり単位元に十分近いところでしか使えない.
むしろ実用上は,以下のように対数写像を「定義」しておく方が使いやすい.
「定義になってねーだろ!」という感想しか出てこないと思うが,そもそも指数写像は全射とも単射とも限らない.つまり,指数写像の値域がリー群全体をカバーする (これが全射) とは限らないし,リー群の同じ元にうつるリー代数の元が 1 種類である (これが単射) とも限らないので,逆写像は定義域・値域は適宜制限しておかないと定まらなかったりするし,定まったとしてもそれがどういった数式で表せるのか,そもそも表し方があるのかなどはリー群ごとに事情が異なる.
というわけで,リー群全般について一般化した議論が必要なときは,議論を単位元近傍に限定してさっきのテイラー展開による定義の方を使わざるを得ないが,個別のリー群について議論するときは,もしもっと便利な定義があるのならそっちを使う方が話が早い.
オイラーの公式
指数関数と言えばオイラーの公式なわけだが (?),行列を導入するとまた少し景色が見えてくる.一つはオイラーの公式のうち $\exp$ や $\cos$ や $\sin$ の部分を行列化する方向である.もう一つは虚数単位 $i$ の行列化する方向である.
スカラの場合
まずはスカラの場合の復習から始める.スカラ純虚数 $ix$ ($x \in \mathbb{R}$) の指数関数を,$\exp{t}$ のテイラー展開に $t = ix$ を代入したものとして定義する.項を並べ替えて整理すると
$$
\begin{align}
\exp ix &= 1 + ix + \frac{1}{2!} i^2 x^2 + \frac{1}{3!} i^3 x^3 +
\frac{1}{4!} i^4 x^4 + \frac{1}{5!} i^5 x^5 + \cdots\\
&= 1 + ix + \frac{1}{2!} (-1) x^2 + \frac{1}{3!} (-1) i x^3 +
\frac{1}{4!} (-1)^2 x^4 + \frac{1}{5!} (-1)^2 i x^5 + \cdots\\
&= \left\{ 1 + \frac{1}{2!} (-1) x^2 + \frac{1}{4!} (-1)^2 x^4 + \cdots \right\}
+ i \left\{ x + \frac{1}{3!} (-1) x^3 + \frac{1}{5!} (-1)^2 x^5 + \cdots \right\}
\end{align}
$$ のようになる.$\cos x$ と $\sin x $ のテイラー展開と見比べることで,オイラーの公式
$$
\begin{align}
\exp{ix} &= \cos x + i \sin x
\end{align}
$$ が得られる.
行列指数関数の場合
行列 $\m{X}$ についても,同様にテイラー展開の各項を見比べることで,以下の公式が得られる.
ただし $\cos \m{X}$ と $\sin \m{X}$ は,行列指数関数と同様にテイラー展開形から
$$
\begin{align}
\cos \m{X} &= \m{I} - \frac{1}{2!}\m{X}^2 + \frac{1}{4!} \m{X}^4 - \cdots +
\frac{(-1)^k}{(2k)!} \m{X}^{2k} + \cdots\\
\sin \m{X} &= \m{X} - \frac{1}{3!}\m{X}^3 + \frac{1}{5!} \m{X}^5 - \cdots +
\frac{(-1)^k}{(2k+1)!} \m{X}^{2k+1} + \cdots
\end{align}
$$ と定義する.これは後にロドリーグの回転公式なるものを導出するときに用いる.
$i$ の代わりに $\m{K}^2 = -\m{I}$ となるような $\m{K}$ を使う
オイラーの公式の導出において,なぜ $\exp$ がこのように $\cos$ と $\sin$ の組合せでうまく書けたのかというと,$\exp$ の係数の $1/k!$ の部分が $\cos$ と $\sin$ にうまいこと交互に現れてくれたことと,$i^2 = -1$ のおかげで対応する項の符号がうまいこと合致してくれたことが鍵となっている.
ということは,オイラーの公式の $i$ を,$\m{K}^2 = -\m{I}$ を満たすような行列 $\m{K}$ で置き換えた等式も同様に成立するということである.
この公式は,後に四元数による回転表現を導出するときに大活躍するのだが,ここでは別の例を見ておきたい.
取り上げるのは,前回から何度も例として用いてきた 1 軸回転である.ここでは 2 次元平面上の回転だとしよう.2 次元回転行列は
$$
\begin{align}
\m{R}(t) &= \bmat
\cos t & -\sin t \\
\sin t & \cos t
\emat
\end{align}
$$ と書けて,その単位元 $\m{R}(0) = \m{I}$ での接ベクトルの 1 つとして
$$
\begin{align}
\m{X} &= \left. \frac{d\m{R}(t)}{dt} \right|_{t = 0}\\
& = \bmat
0 & -1\\
1 & 0 \emat
\end{align}
$$ を取れる.ここで $\m{X}^2 = -\m{I}$ になることに着目しよう.さっきの公式を使うと,接空間の元 $t\m{X}$ ($t \in \mathbb{R}$) からの指数写像は
$$
\begin{align}
\exp t\m{X} &= (\cos t) \m{I} + (\sin t) \m{X}\\
&= \bmat
\cos t & -\sin t \\
\sin t & \cos t
\emat
\end{align}
$$ となって,2 次元回転行列の集合への写像になっていることが無事確認できる.$t\m{X}$ という「真っ直ぐな」 1 次元直線の上の等間隔の目盛りが,2 次元回転という「曲がった」線の上の等角度間隔の目盛りに対応づけられていることがわかる.