物理とか

Index

行列指数関数の微分・摂動


1.行列の指数関数

行列の指数関数は、通常の指数関数の定義をそのまま行列へ拡張したもので、正方行列\(A\)に対して \[\exp(A) = \sum_{n=0}^\infty \frac{A^n}{n!} \tag{1}\] と定義される。量子力学では、演算子の指数関数としてお目にかかることが多いと思う。でも、別にこのような関数は量子力学だけで使われているものではなく、制御理論なんかでも、連立微分方程式 \[\frac{d\b{y}}{dt} = A \b{y}(t)\] のようなもの解くときに多用される関数である。

今回は、この行列指数関数の肩を微小に変化させた、 \[\exp(A+\epsilon B)\tag{2}\] という関数の振る舞いについて調べる。具体的には、この関数の微分 \[\left.\frac{d}{d\epsilon}\exp(A+\epsilon B)\right|_{\epsilon=0} = \lim_{\epsilon\to0}\frac{\exp(A+\epsilon B)-\exp(A)}{\epsilon}\] がどうなるべきか、ということを考えていく。B方向への微分と言ってもいいだろう。量子力学では、時間発展が \[\exp\left(\frac{1}{i\hbar}\mathcal{H}t\right)\] のようにハミルトニアンの指数関数で書かれていたことを思い出すと、これは摂動論に深く関連した事柄である。結果だけ先に書くと、 \[\left.\frac{d}{d\epsilon}\exp(A+\epsilon B)\right|_{\epsilon=0} = \int_0^1 e^{(1-s)A}Be^{sA} ds\] となる。結構きれいにまとまるものだ。

2.とりあえず展開してみる。

とりあえず、指数関数の定義に従って、展開してみよう。もしうまいこと\(\epsilon\)の一次のオーダーだけでも書くことができれば、それで微分が計算できるはずだ。 \begin{align} &\exp(A+\epsilon B)\\ &= I + (A+\epsilon B) + \frac{1}{2}(A+\epsilon B)^2 + \frac{1}{6}(A+\epsilon B)^3 + \cdots\\ &= I + A + \frac{1}{2}A^2 + \frac{1}{6}A^3 +\cdots\\ &~~~~~+\epsilon \left(B + \frac{1}{2}(AB + BA) + \frac{1}{6}(A^2B + ABA + BA^2) +\cdots\right)\\ &~~~~~~~~~~+\epsilon^2 \left(\frac{1}{2}B^2 + \frac{1}{6}(AB^2 + BAB + B^2A) +\cdots\right) \end{align} となるので、一次のオーダーの変化(つまり微分)は、 \begin{align} \left.\frac{d}{d\epsilon}\exp(A+\epsilon B)\right|_{\epsilon=0} &= B + \frac{1}{2}(AB + BA) + \frac{1}{6}(A^2B + ABA + BA^2) +\cdots\\ &= \sum_{n=0}^\infty \sum_{k=0}^n \frac{1}{(n+1)!}A^{n-k}BA^k \tag{3}\\ \end{align} である。これで求まったと思ってもいいのだが、もう少しきれいな形にしたいところだ。

3.Feynmanの方法の紹介

なぜ(3)式で止まってしまうのかといえば、それは\(A,B\)が可換\(AB=BA\)でないことが原因だ。そもそも、もし可換ならば、 \[\exp(A+\epsilon B) = \exp(A)\exp(\epsilon B)\tag{4}\] のように分解できて、簡単に計算できる。

そこで、Feynmanのアイデア (Operator Calculus) を紹介しようと思う。そのアイデアは、行列指数関数を考えるときに可換でないことが計算をとても難しくしていることを踏まえ、とりあえず形式的に常に可換な計算ルールを設定する、というものである。

具体的には、行列\(A,B\)の積を計算するとき、添字を導入して、必ずその添字が小さい方を右に持ってくる、というルールを決める。例えば、 \[AB = A_1B_0\] のように書くことにするのだ。こういうルールを設定すると、例えば上の式で右辺を逆に書いて\(B_0A_1\)としたとしても、これは計算ルールから\(A_1B_0\)と等しくなる。つまり計算が形式上可換になるのだ。

これを指数関数の計算に応用しよう。

まず、指数関数を積の形で書き表す。 \begin{align} \exp(A+B) &= \lim_{N\to\infty}\left(1+\frac{A+B}{N}\right)^N \\ &= \lim_{N\to\infty}\left(1+\frac{A+B}{N}\right)\left(1+\frac{A+B}{N}\right)\left(1+\frac{A+B}{N}\right)\cdots \end{align} そして、ここに添え字を導入してやろう。ただ、添字が無限大になったりしないように、\(k/N\)の形で付けてやる。 \begin{align} &= \lim_{N\to\infty}\left(1+\frac{A_{N/N}+B_{N/N}}{N}\right)\left(1+\frac{A_{(N-1)/N}+B_{(N-1)/N}}{N}\right)\cdots\left(1+\frac{A_{1/N}+B_{1/N}}{N}\right) \end{align} 1/Nに関して一次の項だけ取ってくると、 \begin{align} &\approx \lim_{N\to\infty}\left(1+\sum_k\frac{A_{k/N}+B_{k/N}}{N}\right)\\ &=1+\int_0^1 (A_s+B_s) ds \end{align} となる。もともとこれは指数関数を計算していて、その一次の項だけ取ってきた形だから、逆に指数関数に戻してやると、 \[\exp(A+B) = \exp\left(\int_0^1 (A_s+B_s) ds\right)\tag{5}\] である。このようにして添え字を導入することができた。

ちなみに、\(\exp(C_s) = \exp(\int_0^1 C_s ds)\)というのは当たり前といえば当たり前である。だって自分自身とは可換で、このような式の中の\(C_s\)は常に\(C\)であり、0から1まで積分すれば\(C\)に戻るのだから。上の説明は、純粋に、添え字の導入をどうやってやるか、というアイデアの説明。


4.Feynmanの方法を使ってみる

もとの問題に戻ろう。もとの問題の指数関数に、(5)式のように添え字を導入してやって、 \[\exp(A+\epsilon B) = \exp\left(\int_0^1 (A_s+\epsilon B_s) ds\right)\tag{6}\] とすると、計算ルールによって、とりあえず形式的には\(A_s,B_s\)が可換になる。したがって、次のように変形できる。 \begin{align} \exp\left(\int_0^1 (A_s+\epsilon B_s) ds\right) &= \exp\left(\int_0^1 A_s ds+\epsilon\int_0^1 B_s' ds'\right)\\ &= \exp\left(\int_0^1 A_s ds\right)\exp\left(\epsilon\int_0^1 B_{s'} ds'\right) \end{align} ここで\(\epsilon\)に関して1次の近似をしてやろう。すると、 \begin{align} &\approx\exp\left(\int_0^1 A_s ds\right)\left(1+\epsilon\int_0^1 B_{s'} ds'\right)\\ &=\exp\left(\int_0^1 A_s ds\right)+\epsilon\exp\left(\int_0^1 A_s ds\right)\int_0^1 B_{s'} ds' \end{align} となる。一項目はそのまま計算することができるが、二項目は\(s\)と\(s'\)の大小関係が掛け算の順番に効いてくるので、そのことを踏まえた計算をしないといけない。ということで、\(A_s\)の積分範囲を\(s'\)より大きいところと小さいところで分けてから計算してやる。 \begin{align} &=\exp(A)+\epsilon\int_0^1 ds'\exp\left(\int_0^{s'} A_s ds\right)\exp\left(\int_{s'}^{1} A_s ds\right)B_{s'} \end{align} で、順番を添え字の小さい順に揃えてあげる。そうすれば順番の問題はなくなって積分を計算すれば良くなるから、 \begin{align} &=\exp(A)+\epsilon\int_0^1 ds'\exp\left(\int_{s'}^{1} A_s ds\right) B_{s'}\exp\left(\int_0^{s'} A_s ds\right) \\ &=\exp(A)+\epsilon\int_0^1 ds'\exp\left((1-s')A\right) B\exp\left(s'A\right) \end{align} となり、よってB方向への行列指数関数の微分は、 \[\left.\frac{d}{d\epsilon}\exp(A+\epsilon B)\right|_{\epsilon=0} = \int_0^1 e^{(1-s)A}Be^{sA} ds\tag{6}\] である。

5.まとめ

今回は、行列指数関数の微分について考えて、 \[\left.\frac{d}{d\epsilon}\exp(A+\epsilon B)\right|_{\epsilon=0} = \int_0^1 e^{(1-s)A}Be^{sA} ds\tag{6}\] という結果を得た。ついでに(3)式の級数による表示も確かに微分だからそれも載せて置こう。 \[\left.\frac{d}{d\epsilon}\exp(A+\epsilon B)\right|_{\epsilon=0} = \sum_{n=0}^\infty \sum_{k=0}^n \frac{1}{(n+1)!}A^{n-k}BA^k \tag{3}\]
この公式を応用すれば、行列\(A\)が何らかのパラメータ\(t\)に依存して変化している場合 ( \(A=A(t)\)ということ )に、tに関して微分するとどうなるかわかる。説明はいらないだろう。 \[\frac{d}{dt}e^{A(t)} = \int_0^1 e^{(1-s)A}A'e^{sA} ds\] である。

\(\sum_{n=0}^\infty \sum_{k=0}^n \frac{1}{(n+1)!}A^{n-k}BA^k\)と\(\int_0^1 e^{(1-s)A}Be^{sA} ds\)はすごい似てるし、この級数からこの積分表示を作り出せないものかなあと思ったりする。もし分かる人がいたら教えてください。