行列の指数関数の計算方法

更新日時 2021/09/20

この記事では,行列の指数関数 eAe^A の具体的な計算方法を紹介します。任意の正方行列 AA に対して,eAe^A を計算できます! 少々ヘビーですので,具体例も合わせて読んでみてください。

また,行列の指数関数とその性質も参考にしてください。

目次
  • 前提知識

  • 行列の指数関数の計算方法

  • 計算例

前提知識

行列の指数関数の定義

正方行列 AA に対して,eAe^A

eA=I+A+A22!+A33!+ e^{A}=I+A+\dfrac{A^2}{2!}+\dfrac{A^3}{3!}+\cdots

と定義される。

指数法則について

行列の指数関数において指数法則は成立するのでしょうか。答えは「基本的にNo」です。 しかし AB=BAAB=BA であるときには,eA+B=eAeBe^{A+B} = e^A e^B が成立します。

行列の指数関数の計算方法

行列の指数関数 eAe^A を計算していきましょう。なお,AAm×mm \times m 行列とします。

AA が対角行列の場合

対角行列の場合は簡単です。

A=(a10a20am)A=\begin{pmatrix}a_1&&&0\\&a_2&&\\&&\ddots&\\0&&&a_m \end{pmatrix} に対して eAe^A を求めましょう。

An=(a1n0a2n0amn)A^n = \begin{pmatrix}a_1^n &&&0\\& a_2^n &&\\&&\ddots&\\0&&& a_m^n \end{pmatrix} であることは数学的帰納法より従います。こうして

eA=I+A+12A2+=(10101)+(a10a20am)+12(a120a220am2)+=(1+a1+12a12+01+a2+12a22+01+am+12am2+)=(ea10ea20eam)\begin{aligned} e^A &= I + A +\dfrac{1}{2} A^2 + \cdots \\ &= \begin{pmatrix}1&&&0\\&1&&\\&&\ddots&\\0&&&1 \end{pmatrix} + \begin{pmatrix}a_1&&&0\\&a_2&&\\&&\ddots&\\0&&&a_m \end{pmatrix} +\dfrac{1}{2} \begin{pmatrix}a_1^2 &&&0\\& a_2^2 &&\\&&\ddots&\\0&&&a_m^2 \end{pmatrix} + \cdots\\ &= \begin{pmatrix} 1 + a_1 + \dfrac{1}{2} a_1^2 + \cdots &&&0\\& 1+a_2+\dfrac{1}{2}a_2^2+\cdots &&\\&&\ddots&\\0&&& 1+a_m+\dfrac{1}{2}a_m^2+\cdots \end{pmatrix}\\ &=\begin{pmatrix}e^{a_1}&&&0\\&e^{a_2}&&\\&&\ddots&\\0&&&e^{a_m} \end{pmatrix} \end{aligned}

が得られます。実は一般の行列における指数関数の計算は,この対角行列の指数関数に帰着することになります。

AA が対角化可能な場合

AA の固有値を λ1,λ2,,λm\lambda_1 , \lambda_2 , \cdots , \lambda_m としましょう。なお,λ1=1,λ2=3,λ3=3\lambda_1=1 , \lambda_2 =3 ,\lambda_3 = 3 のように,値の重複は許すものとします。

D=(λ10λ20λm) D = \begin{pmatrix}\lambda_1&&&0\\&\lambda_2&&\\&&\ddots&\\0&&&\lambda_m \end{pmatrix}

というように対角行列を DD を取り,正則行列 PP により,A=PDP1A = PDP^{-1} という式が成立するときを考えます。

行列の対角化の意味と具体的な計算方法行列のn乗の求め方と例題 を踏まえ,計算すると

eA=I+A+12A2+=PIP1+PDP1+12PD2P1+=P(I+D+12D2+)P1=P(eλ10eλ20eλm)P1\begin{aligned} e^A &= I + A +\dfrac{1}{2} A^2 + \cdots \\ &= PIP^{-1} + PDP^{-1} +\dfrac{1}{2} PD^2P^{-1} + \cdots\\ &= P \left(I + D +\dfrac{1}{2} D^2 + \cdots\right) P^{-1}\\ &= P \begin{pmatrix}e^{\lambda_1}&&&0\\&e^{\lambda_2}&&\\&&\ddots&\\0&&&e^{\lambda_m} \end{pmatrix} P^{-1} \end{aligned}

と得られます。

AA が対角化できない場合

対角化できないとなると,ジョルダン標準形の出番です。ジョルダン標準形については
ジョルダン標準形の意味と求め方
を参照してください。

AA のジョルダン標準形

J=(J(λ1,n1)0J(λ2,n2)0J(λk,nk)) J = \begin{pmatrix} J(\lambda_1 , n_1)&&&0\\&J(\lambda_2,n_2)&&\\&&\ddots&\\0&&&J(\lambda_k,n_k) \end{pmatrix}

なる行列 JJ と,正則行列 PP により,A=PJP1A = PJP^{-1} という式が成立するときを考えます。

ブロック行列として考えることで

Jn=(J(λ1,n1)n0J(λ2,n2)n0J(λk,nk)n) J^n = \begin{pmatrix} J(\lambda_1 , n_1)^n&&&0\\&J(\lambda_2,n_2)^n&&\\&&\ddots&\\0&&&J(\lambda_k,n_k)^n \end{pmatrix}

となります。したがって

eJ=(eJ(λ1,n1)0eJ(λ2,n2)0eJ(λk,nk)) e^J = \begin{pmatrix} e^{J(\lambda_1 , n_1)}&&&0\\&e^{J(\lambda_2,n_2)}&&\\&&\ddots&\\0&&&e^{J(\lambda_k,n_k)}\end{pmatrix}

であり,

eA=P(eJ(λ1,n1)0eJ(λ2,n2)0eJ(λk,nk))P1 e^A =P \begin{pmatrix} e^{J(\lambda_1 , n_1)}&&&0\\&e^{J(\lambda_2,n_2)}&&\\&&\ddots&\\0&&&e^{J(\lambda_k,n_k)}\end{pmatrix} P^{-1}

と計算されることがわかります。あとは各ジョルダン細胞にスポットを当てて計算すれば良いということですね。行列のn乗の求め方と例題 にも書いてありますが,ジョルダン細胞の nn 乗は少々煩雑としています。最終的に無限和を取ることを踏まえて計算の工夫をすると,実は簡単に指数関数を求めることができます。

J(λi,ni)=(λi10λi1λi10λi) J(\lambda_i , n_i) = \begin{pmatrix} \lambda_i&1&&&0\\&\lambda_i&1&&\\&&\ddots&\ddots&\\&&&\lambda_i&1\\0&&&&\lambda_i\end{pmatrix}

に対して eJ(λi,ni)e^{J(\lambda_i , n_i)} を求めましょう。J(λ1,ni)J(\lambda_1,n_i) は対角成分がすべてλi\lambda_i である対角行列と, (010010100) \begin{pmatrix} 0&1&&&0\\&0&1&&\\&&\ddots&\ddots&\\&&&0&1\\0&&&&0\end{pmatrix} という特殊な形をした上三角行列の和になっています。これを踏まえて J(λi,ni)=λiI+NJ(\lambda_i,n_i) = \lambda_i I + N と分解して考えましょう。こうしてみると λiIN=NλiI\lambda_i I \cdot N = N \cdot \lambda_i I であることがわかります。行列の指数関数についての指数法則のことを思い出すと, eJ(λi,ni)=eλiI+N=eλiIeNe^{J(\lambda_i,n_i)} = e^{\lambda_i I +N} = e^{\lambda_i I} e^{N} が成立することがわかります。

eλiI=eλiIe^{\lambda_i I} = e^{\lambda_i} I です。一方

eN=I+N+12N2+=(101101)+(010010100)+12(01001000)++1(m1)!(010000)=(11121(m1)!11121101)\begin{aligned} e^N &= I + N + \dfrac{1}{2}N^2 + \cdots\\ &= \begin{pmatrix} 1&&&&0\\&1&&&\\&&\ddots&&\\&&&1&\\0&&&&1\end{pmatrix} + \begin{pmatrix}0&1&&&0\\&0&1&&\\&&\ddots&\ddots&\\&&&0&1\\0&&&&0\end{pmatrix} + \dfrac{1}{2} \begin{pmatrix} 0&&1&&0\\&0&&\ddots&\\&&\ddots&&1\\&&&0&\\0&&&&0\end{pmatrix} +\cdots +\dfrac{1}{(m-1)!} \begin{pmatrix} 0&&&&1\\&0&&&\\&&\ddots&&\\&&&0&\\0&&&&0\end{pmatrix}\\ &= \begin{pmatrix} 1 &1&\dfrac{1}{2} &\cdots& \dfrac{1}{(m-1)!} \\ &1&1&\ddots &\vdots \\ &&\ddots&\ddots&\dfrac{1}{2}\\&&&1&1\\0&&&&1\end{pmatrix} \end{aligned}

と計算されます。こうして eJ(λi,ni)=eλieNe^{J(\lambda_i,n_i)} = e^{\lambda_i} e^N が計算できました。

計算例

例題
  1. A=(2314)A = \begin{pmatrix} 2&3\\1&4 \end{pmatrix} とする。このとき eAe^A を求めよ。
  2. B=(3111)B = \begin{pmatrix} 3&1\\-1&1 \end{pmatrix} とする。このとき eBe^B を求めよ。
解答
  1. まず AA の固有値を求める。固有多項式は (2t)(4t)3=t26t+5 (2-t)(4-t) - 3 =t^2 -6t +5 であるため,固有値は 1,51,5 となる。それぞれ固有ベクトルを計算すると,(31),(11)\begin{pmatrix} 3\\-1 \end{pmatrix} , \begin{pmatrix} 1 \\ 1\end{pmatrix} が得られる。ゆえに P=(3111)P = \begin{pmatrix} 3&1 \\ -1&1 \end{pmatrix} により対角化される。このとき P1=14(1113)P^{-1} = \dfrac{1}{4} \begin{pmatrix} 1&-1\\1&3 \end{pmatrix} である。また P1AP=14(1113)(2314)(3111)=(1005)\begin{aligned} P^{-1} A P &= \dfrac{1}{4} \begin{pmatrix} 1&-1\\1&3 \end{pmatrix} \begin{pmatrix} 2&3\\1&4 \end{pmatrix} \begin{pmatrix} 3&1 \\ -1&1 \end{pmatrix}\\ &=\begin{pmatrix} 1&0\\0&5 \end{pmatrix} \end{aligned} となる。以上より eA=PeP1APP1=P(e00e5)P1=14(3111)(e00e5)(1113)=14(3e+e53e+3e5e+e5e+3e5)\begin{aligned} e^A &= P e^{P^{-1}AP} P^{-1}\\ &= P \begin{pmatrix} e&0\\0&e^5 \end{pmatrix} P^{-1}\\ &=\dfrac{1}{4} \begin{pmatrix} 3&1 \\ -1&1 \end{pmatrix} \begin{pmatrix} e&0\\0&e^5 \end{pmatrix} \begin{pmatrix} 1&-1\\1&3 \end{pmatrix}\\ &= \dfrac{1}{4} \begin{pmatrix} 3e+e^5&-3e+3e^5\\-e+e^5&e+3e^5 \end{pmatrix} \end{aligned} が得られる。

  2. まず BB の固有値を求める。固有多項式は (3t)(1t)+1=t24t+4 (3-t)(1-t) +1 =t^2 -4t +4 であるため,固有値は 22 となる。
    固有値2に対する固有ベクトルは (11)\begin{pmatrix} 1\\-1 \end{pmatrix} である。固有ベクトルはこれのみである。2×22 \times 2 行列に対して,固有ベクトルの数は1つである。行列の対角化の意味と具体的な計算方法 でも述べているように,この場合行列 AA を対角化することはできない。
    (B2I)v=(11)(B- 2I) v = \begin{pmatrix} 1\\-1 \end{pmatrix} となる vv を求めると,v=(01)v = \begin{pmatrix} 0\\1 \end{pmatrix} である。こうして P=(1011)P = \begin{pmatrix} 1&0\\-1&1 \end{pmatrix} によりジョルダン標準形 P1BP=(2102) P^{-1} B P = \begin{pmatrix} 2&1\\0&2 \end{pmatrix} が得られる。以上より eB=PeP1BPP1=Pe2I+NP1=P(e200e2)(1101)P1=(2e2e2e20)\begin{aligned} e^B &= P e^{P^{-1}BP} P^{-1}\\ &= P e^{2I + N} P^{-1}\\ &= P \begin{pmatrix} e^2&0\\0&e^2 \end{pmatrix} \begin{pmatrix} 1&1\\0&1 \end{pmatrix} P^{-1}\\ &= \begin{pmatrix} 2e^2&e^2\\-e^2&0 \end{pmatrix} \end{aligned} が得られる。なお N=(0100) N= \begin{pmatrix} 0&1\\0&0 \end{pmatrix} である。

行列の指数関数は非常に重要で,連立微分方程式を解く際に用いることがあります。また線形リー群のリー環の計算にも用います。ぜひ計算方法をマスターしましょう。