概要
コンピュータビジョンやロボティクスの分野では回転を記述するためにいくつかの数学的な道具を使いますが、その1つにリー代数があります。
これらの分野におけるリー群・リー代数に関する説明は以下の記事が非常にわかりやすいです。
https://swkagami.hatenablog.com/entry/lie_01group
ところで、コンピュータビジョンの論文を読んでいたときにBCH公式というリー代数に関する公式に出会いました。初見だったので証明を読みつつ行間を埋めてみました。
あまり良く知らないのですが、素粒子物理などの分野で用いるようです。日本語の証明は数が少なく、私のようなコンピュータの界隈の人間が理論物理のソースにたどり着くのはややハードルが高いと思い、需要があるかなと思ったのでここに残しておきます。
数学的には厳密ではなく、演算のルールに従って計算してみた、という証明になります。
命題
A, Bを作用素とする。
[A, B]=AB-BAをリー括弧積とする。
このとき、
\begin{aligned}
\tag{1}
e^{A}e^{B}=\exp(A+B+\frac{[A,B]}{2}+\frac{1}{12}[A,[A,B]]-\frac{1}{12}[B,[A,B]]+\dotsi)
\end{aligned}
が成り立つ。
注
例えばA,Bは回転行列などです。
よく学部初期の線形代数の授業で行列の指数関数を習うと、必ず
行列A,Bが可換なら、
が成り立つ。
というのが出てきますが、これに関係が有ります。というのも、A,Bが可換なら、
になるためです。
この公式から、A,Bが非可換の場合、「どこまで非可換なのか」によって「どこまで高階の項まで続くか」が分かります。
また、
e^A e^B = e^Cとすると、広い意味で
C := log(e^A e^B)
ですが、BCH公式から、「CがA,B,及びその交換積の繰り返しによる無限和で書ける」、という事実も分かります。
証明
リー括弧積の基本的な性質は知っているものとします。
まず、次の補題を示す:
\tag{2}
\begin{aligned}
e^A B e^{-A}=B+[A,B]+\frac{1}{2}[A,[A,B]]+\dotsi+\frac{1}{n!}[A,[A,\dots[A,B]\dots]+\dotsi
\end{aligned}
関数Fを次のように定める:
\tag{3}
\begin{aligned}
F(x)&=e^{xA}Be^{-xA}\\
&=\sum_{n=0}^{\infty} \frac{1}{n!}F_{n}x^{n}
\end{aligned}
F_{n}はテイラー展開の係数である。F(1)が(2)の左辺に一致することに注意しておく。
ここで、
\tag{4}
\begin{aligned}
\frac{d}{dx}F(x)&=Ae^{xA}Be^{-xA}+e^{xA}B(-A)e^{-xA}\\
&=A(e^{xA}Be^{-xA})-(e^{xA}Be^{-xA})A\\
&=[A, F(x)]
\end{aligned}
である。Ae^{A}=e^{A}Aなどを用いた。
(3)の無限級数を項別微分(できるものとして)して、(4)を用いると、
\tag{5}
\begin{aligned}
\sum_{n=1}^{\infty}F_{n}\frac{1}{(n-1)!}x^{n-1}=\sum_{n=0}^{\infty}\frac{1}{n!}[A,F_{n}]x^{n}
\end{aligned}
括弧積の双線型性を用いた。
(5)左辺の添字を1つずらすと、
\tag{6}
\begin{aligned}
\sum_{n=0}^{\infty}F_{n+1}\frac{1}{n!}x^{n}=\sum_{n=0}^{\infty}\frac{1}{n!}[A,F_{n}]x^{n}
\end{aligned}
となり、両辺のx^nの係数を比較すると、
\tag{7}
\begin{aligned}
F_{n+1}=[A,F_n]
\end{aligned}
が成り立つ。
(3)のテイラー展開において、定数項を調べると、明らかに
\tag{8}
\begin{aligned}
F_0=B
\end{aligned}
であるから、(4),(7),(8)より(2)が示される。
次に、A(x)を何らかのxの関数として、以下の公式を示す:
\tag{9}
\begin{aligned}
\frac{d}{dx}e^{A(x)}=\int_{0}^{1}e^{(1-y)A}\frac{dA}{dx}e^{yA}dy
\end{aligned}
9の左辺について、A':=\frac{dA}{dx}とすると、
\tag{10}
\begin{aligned}
\frac{d}{dx}e^{A(x)}&=\frac{d}{dx}(1+A+\frac{1}{2!}A^2+\frac{1}{3!}A^3+\dotsi)\\
&=A'+\frac{A'A+AA'}{2!}+\frac{A'A^2+AA'A+A^2A'}{3!}+\dotsi
\end{aligned}
が成り立つ。積の微分公式などを用いた。
(10)の2行目はAをn個、A'を1個、Aをm個掛けた項を(n+m+1)!で割り、それを全ての添字に対して足し合わせていることが分かるので、
\tag{11}
\begin{aligned}
\frac{d}{dx}e^{A(x)}&=\sum_{n=0}^{\infty}\sum_{m=0}^{\infty}\frac{1}{(n+m+1)!}A^{n}A'A^{m}
\end{aligned}
と書ける。
また、(9)の右辺について、積分を実行すると
\tag{12}
\begin{aligned}
\int_{0}^{1}e^{(1-y)A}\frac{dA}{dx}e^{yA}
&=
\int_{0}^{1}
\sum_{n=0}^{\infty}\frac{((1-y)A)^{n}}{n!}
A'
\sum_{m=0}^{\infty}\frac{(yA)^m}{m!}
dy\\
&=
\sum_{n=0}^{\infty}
\sum_{m=0}^{\infty}
\frac{A^{n}A'A^{m}}{n!m!}
\int_{0}^{1}
y^m
(1-y)^n
dy\\
&=
\sum_{n=0}^{\infty}
\sum_{m=0}^{\infty}
\frac{A^{n}A'A^{m}}{n!m!}
\frac{m!n!}{(m+n+1)!}\\
&=
\sum_{n=0}^{\infty}
\sum_{m=0}^{\infty}
\frac{1}{(m+n+1)!}A^{n}A'A^{m}\\
\end{aligned}
となる。ただし、1行目から2行目は定積分と無限和を交換できるものとした。2行目から3行目はベータ関数の積分である(例えばこの資料)。
(11)と(12)から(9)が示される。
最後に、(9)にe^{-A}を左からかけて、(2)を積分の中で用いると、
\tag{13}
\begin{aligned}
e^{-A}\frac{d}{dx}e^{A}
&=e^{-A}\int_{0}^{1}e^{(1-y)A}\frac{dA}{dx}e^{yA}dy\\
&=\int_{0}^{1}e^{-yA}A'e^{yA}dy\\
&=A'+\frac{1}{2!}[A',A]+\frac{1}{3!}[[A',A], A]+\dotsi
\end{aligned}
となる。最後の行は、[0,1]の定積分を実行するだけである。
次に、BCH公式(1)において、expの中身を2次の項まで求めることにする。
\tag{14}
\begin{aligned}
e^{xA}e^{xB}&=e^{G(x)}&=e^{xG_1+x^{2}G_2+x^{3}G_3+\dotsi}
\end{aligned}
となるようにG(x)を定義する。
(2)などをうまく使えるように、
\tag{15}
\begin{aligned}
e^{-xB}e^{-xA}\frac{d}{dx}e^{xA}e^{xB}
&=e^{-G(x)}\frac{d}{dx}e^{G(x)}
\end{aligned}
を考える。
(15)の左辺について、(2)を用いると
\tag{16}
\begin{aligned}
e^{-xB}e^{-xA}\frac{d}{dx}e^{xA}e^{xB}
&=e^{-xB}e^{-xA}Ae^{xA}e^{xB} + e^{-xB}e^{-xA}e^{xA}Be^{xB}\\
&=e^{-xB}e^{-xA}e^{xA}Ae^{xB} + e^{-xB}Be^{xB}\\
&=e^{-xB}Ae^{xB} + e^{-xB}e^{xB}B\\
&=e^{-xB}Ae^{xB} + B\\
&=B + (A + x[A,B] - \frac{x^2}{2}[B,[A,B]] + O(x^3))\\
&=A+B+x[A,B] - \frac{x^2}{2}[B,[A,B]] + O(x^3)
\end{aligned}
であり、(15)の右辺について
\tag{17}
\begin{aligned}
e^{-G(x)}\frac{d}{dx}e^{G(x)}
&=G'+\frac{1}{2}[G',G]+\frac{1}{3!}[[G',G],G]+\dotsi\\
&=G_1+2xG_2+x^2(3G_3-\frac{1}{2}[G_1,G_2])+O(x^3)
\end{aligned}
ただし、途中で
\tag{18}
\begin{aligned}
G'=G_1+2xG_2+3x^2G_3+O(x^3)
\end{aligned}
と
\tag{19}
\begin{aligned}
[G',G]
&=[G_1+2xG_2+3x^2G_3+O(x^3), xG_1+x^{2}G_2+x^{3}G_3+O(x^4)]\\
&=x[G_1,G_1]+x^2[G_1,G_2]+2x^2[G_2,G_1]+O(x^3)\\
&=-x^2[G_1,G_2]+O(x^3)
\end{aligned}
とを用いた。
(15),(16),(17)より、x^nの係数を比較して
\tag{20}
\begin{aligned}
G_1=A+B\\
G_2=\frac{1}{2}[A,B]\\
G_3=\frac{1}{12}([A,[A,B]]-[B,[A,B]])\\
\end{aligned}
が分かり、
(1)、すなわち
\begin{aligned}
\tag{1}
e^{A}e^{B}=\exp(A+B+\frac{[A,B]}{2}+\frac{1}{12}[A,[A,B]]-\frac{1}{12}[B,[A,B]]+\dotsi)
\end{aligned}
が成り立つ。
より高次の項も同様に求められる。
(終)
何が嬉しいのか
証明は「こんなん思いつかなくて草」って気持ちになりました。天下り的ですね...。
応用上としては、工学の分野で行列の指数関数を掛け合わせる場面は多々あると思うので、知らないとうっかり間違ったこと導いてしまうというようなポジションの命題だと思います。行列の指数関数がA,Bが可換ならe^A e^B = e^{A+B}になるという事実の裏側を知れて「ほえ〜」ってなりました。
ちなみにこれを知るきっかけになった論文は(著者の意図に反することを言いたくないのであえて出さないでおきますが)、「可換なのでe^A e^{-B}=e^{A-B}になる」というのを使って、「ある量がA,Bではなくその差分にのみ依存する」ということを導いていて、それなりに重要な役割を果たしていました。知っておくとどこかで役立ちそうですね。
参考文献
https://en.wikipedia.org/wiki/Baker–Campbell–Hausdorff_formula
http://webhome.phy.duke.edu/~mehen/760/ProblemSets/BCH.pdf
Discussion