行列の対数

数学 > 線型代数学 > 行列値関数 > 行列の対数

数学において、行列の対数(ぎょうれつのたいすう、英語: Logarithm of a matrix)とは、行列の指数関数を施したとき与えられた行列と一致するようなもう一つの行列をいう。つまり行列の対数函数は、スカラー変数スカラー値の対数函数の一般化であり、また行列の指数関数のある意味での逆関数を与えるものとなる。必ずしも全ての行列がその対数を持つわけではなく、また対数を持つ場合であっても複数の行列を対数として持ち得る。対数を持つ行列は何らかのリー群に属し、かつ、その対数はそのリー群に付随するリー代数の元に対応するため、行列の対数函数の研究はリー理論(英語版)につながる。

定義

与えられた正方行列 A に対して、eB = A を満たす正方行列 B を、A の(行列の)対数と呼び B = log(A) あるいは ln(A) などで表す。複素数の場合と同様、行列の対数はしばしば一意ではない(後述)。

なお、正方行列を変数とする指数関数は、正方行列 B に対して

e B = exp ( B ) := n = 0 B n n ! {\displaystyle e^{B}=\exp(B):=\sum _{n=0}^{\infty }{\frac {B^{n}}{n!}}}

で定義される。

具体例

正方行列 A に対して、 B = log ( c ) I k = 1 1 k ( I 1 c A ) k {\displaystyle B=\log(c)I-\sum _{k=1}^{\infty }{\frac {1}{k}}\left(I-{\frac {1}{c}}A\right)^{k}} が適当な正の実数 c {\displaystyle c} について収束すれば、 B = log ( A ) {\displaystyle B=\log(A)} である。

複素関数 log ( z ) {\displaystyle \log(z)} について、 z = c {\displaystyle z=c} を中心としたテイラー展開は、 log ( z ) = log ( c ) + k = 1 ( 1 ) k 1 k c k ( z c ) k = log ( c ) k = 1 1 k ( 1 z c ) k {\displaystyle \log(z)=\log(c)+\sum _{k=1}^{\infty }{\frac {(-1)^{k-1}}{kc^{k}}}(z-c)^{k}=\log(c)-\sum _{k=1}^{\infty }{\frac {1}{k}}\left(1-{\frac {z}{c}}\right)^{k}} であり、その収束半径は c {\displaystyle c} であるので、 R e ( z ) > 0 {\displaystyle Re(z)>0} ならば c {\displaystyle c} を十分大きくとればテイラー展開は収束する。

これを行列に当てはめれば、 正方行列Aのすべての固有値(特性根)の実数部分が正であれば、適当な正の実数 c {\displaystyle c} について、 B = log ( c ) I k = 1 1 k ( I 1 c A ) k {\displaystyle B=\log(c)I-\sum _{k=1}^{\infty }{\frac {1}{k}}\left(I-{\frac {1}{c}}A\right)^{k}} は収束し、 B = log ( A ) {\displaystyle B=\log(A)} である。

例: 平面回転の対数

簡単な例が、平面上の回転によって与えられる。原点を中心とする角度 α の回転は 2×2 行列

A = [ cos ( α ) sin ( α ) sin ( α ) cos ( α ) ] {\displaystyle A={\begin{bmatrix}\cos(\alpha )&-\sin(\alpha )\\\sin(\alpha )&\cos(\alpha )\end{bmatrix}}}

で表わされる。任意の整数 n に対して、行列

B n = ( α + 2 π n ) [ 0 1 1 0 ] {\displaystyle B_{n}=(\alpha +2\pi n){\begin{bmatrix}0&-1\\1&0\end{bmatrix}}}

A の対数である。したがって、A は無限個の対数を持つ。このことは、回転角が 2π の整数倍の違いを除いてしか決めることができないという事実に対応するものである。

リー理論の用語を用いれば、回転行列 A はリー群 SO(2) の元であり、対応する対数 B は(歪対称行列全体の成す)リー代数 𝖘𝖔(2) の元となる。行列

[ 0 1 1 0 ] {\displaystyle {\begin{bmatrix}0&1\\-1&0\end{bmatrix}}}

リー代数 𝖘𝖔(2) の生成元である。

存在性

「与えられた行列に対数が存在するか否か」という問題は、複素係数の範囲で考えるときに最も単純な答を持つ。この場合、与えられた行列が対数を持つための必要十分条件は、それが可逆であることである[1]ジョルダン標準形で考えれば、任意の A = P J P 1 {\displaystyle A=PJP^{-1}} に対して、 exp ( P X P 1 ) = n = 0 ( P X P 1 ) n n ! = P n = 0 X n n ! P 1 = P exp ( X ) P 1 {\displaystyle \exp(PXP^{-1})=\sum _{n=0}^{\infty }{\frac {(PXP^{-1})^{n}}{n!}}=P\sum _{n=0}^{\infty }{\frac {X^{n}}{n!}}P^{-1}=P\exp(X)P^{-1}} であるから、 J = exp ( X ) {\displaystyle J=\exp(X)} となる X {\displaystyle X} が存在すれば、 A = exp ( P X P 1 ) {\displaystyle A=\exp(PXP^{-1})} となり A {\displaystyle A} は対数を持つ。逆に A = exp ( Y ) {\displaystyle A=\exp(Y)} となる Y {\displaystyle Y} が存在すれば、 J = P 1 A P = exp ( P 1 Y P ) {\displaystyle J=P^{-1}AP=\exp(P^{-1}YP)} となり J {\displaystyle J} は対数を持つ。このため、 A {\displaystyle A} の対数の存在と、そのジョルダン標準形 J {\displaystyle J} の対数の存在は必要十分である。一方、ジョルダン細胞については、固有値がゼロでなければ対数行列を持ち、固有値がゼロならば対数行列を持たないことが言えるので、行列 A {\displaystyle A} が対数行列を持つには、固有値ゼロを持たない、即ち行列式がゼロでない、即ち可逆であることが必要十分と言える。

対数を持つ場合においても対数が一意とは限らないが、その行列が負の実固有値を持たないならば、そのすべての固有値が帯状領域 {zC  |  −π < ℑ z < π} に載っているような対数はただ一つ定まり、主値あるいは「主対数 (principal logarithm)」と呼ばれる[2]

実係数の範囲内で考えるならば答はより込み入ってくる。実行列が実行列を対数に持つための必要十分条件は、それが可逆かつ負の固有値に属する各ジョルダン細胞が偶数回あらわれることである[3]。可逆な実行列が、このジョルダン細胞に関する条件を満たさないならば、その対数は実でない複素行列の中でしか考えられない。この状況はスカラーの場合にすでに生じていることであり、実際 −1 の(複素)対数は実数でない複素数である。2×2 実行列の実対数の存在性については後述する。

性質

A および B がともに正定値行列ならば

tr ln ( A B ) = tr ln ( A ) + tr ln ( B ) {\displaystyle \operatorname {tr} {\ln {(AB)}}=\operatorname {tr} {\ln {(A)}}+\operatorname {tr} {\ln {(B)}}}

が成り立つ。AB とが可換(AB = BA)なとき

ln ( A B ) = ln ( A ) + ln ( B ) {\displaystyle \ln {(AB)}=\ln {(A)}+\ln {(B)}}

が成り立つ。ここで B = A−1 を代入すれば

ln ( A 1 ) = ln ( A ) {\displaystyle \ln {(A^{-1})}=-\ln {(A)}}

が得られる。

さらなる例: 三次元空間上の回転行列の対数

ℝ³ における回転 RSO(3)3×3 直交行列によって与えられる。

そのような回転行列 R の対数はロドリゲスの回転公式の反対称成分から直ちに計算できる[4]軸–角度表現(英語版)も参照)。これにより、フロベニウスノルムを最小とする対数が得られるが、R が固有値 −1 を持つとき、そのようなものは一意でないためうまくいかない。

さらなる注意として、回転行列 A, B に対して、

d g ( A , B ) := log ( A B ) F {\displaystyle d_{g}(A,B):=\|\log(A^{\top }B)\|_{F}}

は回転行列全体の成す三次元多様体上の測地的距離である。

対角化可能な行列の対数の計算法

対角化可能行列 A に対する ln A の求め方は以下のようにする。

  • 行列 A固有ベクトルからなる行列 V を求める(各列が A の固有ベクトル)。
  • V逆行列 V−1 を求める。

このとき

A = V 1 A V {\displaystyle A'=V^{-1}AV}

と置けば A'A の固有値が対角成分に並んだ対角行列となる。

  • ln(A') を得るためには、A' の対角成分をそれぞれの自然対数で置き換えればよい。

これにより

ln A = V ( ln A ) V 1 {\displaystyle \ln A=V(\ln A')V^{-1}}

を得る。

このような A の対数が(A が実行列の場合でさえ)複素行列となりうることは、各成分が実かつ正の行列が(にも拘らず)負のあるいはさらに複素数の固有値を持ち得る(それは回転行列の例においても言えることである)という事実から従う。この種の行列の対数が一意でないことは、複素数の対数が一意でないことから生じてくる。

対角化が不可能な行列の対数

ジョルダン細胞の対数行列

ジョルダン細胞 J n ( λ ) {\displaystyle J_{n}(\lambda )} とは、n次正方行列で、 j < i {\displaystyle j<i} のとき ( J n ( λ ) ) i j = 0 {\displaystyle (J_{n}(\lambda ))_{ij}=0} ( J n ( λ ) ) i i = λ {\displaystyle (J_{n}(\lambda ))_{ii}=\lambda } ( J n ( λ ) ) i i + 1 = 1 {\displaystyle (J_{n}(\lambda ))_{ii+1}=1} j > i + 1 {\displaystyle j>i+1} のとき ( J n ( λ ) ) i j = 0 {\displaystyle (J_{n}(\lambda ))_{ij}=0} となる行列である。

λ 0 {\displaystyle \lambda \neq 0} のとき、ジョルダン細胞 J n ( λ ) {\displaystyle J_{n}(\lambda )} の対数行列 log ( J n ( λ ) ) {\displaystyle \log(J_{n}(\lambda ))} の各成分は、

j < i {\displaystyle j<i} のとき ( log ( J n ( λ ) ) ) i j = 0 {\displaystyle (\log(J_{n}(\lambda )))_{ij}=0} ( log ( J n ( λ ) ) ) i i = log ( λ ) {\displaystyle (\log(J_{n}(\lambda )))_{ii}=\log(\lambda )} j > i {\displaystyle j>i} のとき ( log ( J n ( λ ) ) ) i j = ( 1 ) j i 1 ( j i 1 ) ! λ j + i {\displaystyle (\log(J_{n}(\lambda )))_{ij}=(-1)^{j-i-1}(j-i-1)!\lambda ^{-j+i}}

である。

このことは、次のことからわかる。 j > i {\displaystyle j>i} のとき、ジョルダン細胞の i j {\displaystyle ij} 成分は、 λ {\displaystyle \lambda } を変数とみて、 i i {\displaystyle ii} 成分を j i {\displaystyle j-i} 回微分したものとなっている。同様の性質は、 J n ( λ ) k {\displaystyle J_{n}(\lambda )^{k}} 、単位行列、同様の性質を持つ行列の定数倍、同様の性質を持つ行列どうしの和についても成り立つ。このため、 log ( J n ( λ ) ) = log ( c ) I k = 1 1 k ( I 1 c J n ( λ ) ) k {\displaystyle \log(J_{n}(\lambda ))=\log(c)I-\sum _{k=1}^{\infty }{\frac {1}{k}}\left(I-{\frac {1}{c}}J_{n}(\lambda )\right)^{k}} についても同様の性質が成り立つ。 log ( J n ( λ ) ) {\displaystyle \log(J_{n}(\lambda ))} の対角成分は明らかに log ( λ ) {\displaystyle \log(\lambda )} であるから、そこから順次微分して他の成分が分かる。

英語版よりの直訳

上述のアルゴリズムは

[ 1 1 0 1 ] {\displaystyle {\begin{bmatrix}1&1\\0&1\end{bmatrix}}}

ような対角化不可能な行列については適用できない。このような行列に対しては、そのジョルダン分解を計算する必要があり、また上述のような対角成分の対数ではなく、ジョルダン細胞(英語版)の対数を計算することになる。

後者の作業については、ジョルダン細胞が

B = [ λ 1 0 0 0 0 λ 1 0 0 0 0 λ 1 0 0 0 0 0 λ 1 0 0 0 0 0 λ ] = λ [ 1 λ 1 0 0 0 0 1 λ 1 0 0 0 0 1 λ 1 0 0 0 0 0 1 λ 1 0 0 0 0 0 1 ] = λ ( I + K ) {\displaystyle B={\begin{bmatrix}\lambda &1&0&0&\cdots &0\\0&\lambda &1&0&\cdots &0\\0&0&\lambda &1&\cdots &0\\\vdots &\vdots &\vdots &\vdots &\ddots &\vdots \\0&0&0&0&\lambda &1\\0&0&0&0&0&\lambda \\\end{bmatrix}}=\lambda {\begin{bmatrix}1&\lambda ^{-1}&0&0&\cdots &0\\0&1&\lambda ^{-1}&0&\cdots &0\\0&0&1&\lambda ^{-1}&\cdots &0\\\vdots &\vdots &\vdots &\vdots &\ddots &\vdots \\0&0&0&0&1&\lambda ^{-1}\\0&0&0&0&0&1\\\end{bmatrix}}=\lambda (I+K)}

のような形に書き表せることに注意することで達成される。ここで、K は主対角成分およびその下がすべて 0 であるような行列である(数 λ が零でないことは、対数が取れるために行列は可逆とする仮定による)。

このとき、メルカトル級数

ln ( 1 + x ) = x x 2 2 + x 3 3 x 4 4 + {\displaystyle \ln(1+x)=x-{\frac {x^{2}}{2}}+{\frac {x^{3}}{3}}-{\frac {x^{4}}{4}}+\cdots }

を用いれば

ln B = ln ( λ ( I + K ) ) = ln ( λ I ) + ln ( I + K ) = ( ln λ ) I + K K 2 2 + K 3 3 K 4 4 + {\displaystyle \ln B=\ln(\lambda (I+K))=\ln(\lambda I)+\ln(I+K)=(\ln \lambda )I+K-{\frac {K^{2}}{2}}+{\frac {K^{3}}{3}}-{\frac {K^{4}}{4}}+\cdots }

を得る。一般には、この級数は任意の行列 K に対して収束するわけではない(絶対値が 1 より大きい任意の実数に対して収束しないのと同様)が、今の場合に限っては K冪零行列であるから、実際には有限項しかない(K の次元が m なら Km は零行列である)。

このやり方で、例えば

ln [ 1 1 0 1 ] = [ 0 1 0 0 ] {\displaystyle \ln \!{\begin{bmatrix}1&1\\0&1\end{bmatrix}}={\begin{bmatrix}0&1\\0&0\end{bmatrix}}}

を得る。

関数解析学的な側面

正方行列はユークリッド空間 Rnn は行列の次元)上の線形作用素を表現する。そのような空間は有限次元であるから、この作用素は実際に有界である。

正則汎函数計算(英語版)の道具立てを用いると、複素数平面内の開集合上で定義された正則関数 f(z) および有界作用素 T に対し、f(z)T のスペクトル上で定義される限りにおいて、f(T) を計算することができる。

関数 f(z) = ln z は、複素数平面内の原点を含まない任意の単連結開集合上で定義することができて、かつそのような領域上で正則である。このことは T のスペクトルが原点を含まず、原点から無限遠点へ向かう T のスペクトルを横切らない径路が存在するならば ln T が定義できることを示している(例えば、T のスペクトルがその内側に原点がくるような円ならば、ln T は定義できない)。

ユークリッド空間の場合に立ち戻ると、この空間上の線形作用素のスペクトルはその表現行列の固有値全体の成す集合であり、それは有限集合である。そのスペクトルに原点が含まれない(行列が可逆)である限りにおいて、前段落で述べた径路に関する条件などは明らかに満たされるので、その論法により ln T定義可能である。この種の行列の対数が一意でないことは、行列の固有値集合上で定義される対数函数の分枝が複数選びうるという事実から生じる。

リー群論的な側面

リー群論において、リー代数 𝔤 から対応するリー群 G への指数写像

exp : g G {\displaystyle \exp \colon {\mathfrak {g}}\to G}

が存在する。行列リー群に対して、𝔤 および G の元は正方行列であり、指数写像は行列の指数関数で与えられる。その逆写像 log := exp−1 は多価であり、本項で扱う行列の対数と一致する。対数写像はリー群 G を付随するリー代数 𝔤 へ写す。ここで、指数写像は零行列 0𝔤 の近傍 U と単位行列 1G の近傍 V の間の局所微分同相写像であることに注意する[5]。したがって、(行列の)対数函数は

log : V ( G ) U ( g ) {\displaystyle \log \colon V_{(\subset G)}\to U_{(\subset {\mathfrak {g}})}}

なる写像として矛盾なく定義される。このとき、ヤコビの公式の重要な系として

log ( det ( A ) ) = tr ( log A ) {\displaystyle \log(\det(A))=\operatorname {tr} (\log A)}

が成り立つ。

2×2 に限った話

二元数」および「実二次正方行列」も参照

2×2 実行列が負の行列式を持つとき、その実対数は存在しない。まず初めに、任意の 2×2 実行列は三種類の複素数 z = x + yε(ただし ε² ∈ {−1, 0, +1})のいずれか一種類と見なすことができて、そのときの z2×2 実行列全体の成す環の部分複素数平面上の点になっていることに注意する。

行列式が負であるような場合は ε² = +1 の場合、すなわち分解型複素数平面上にしか存在しない。この平面のうちの1/4のみが指数写像の像であって、この部分(四分象限)においてのみ対数写像が定義できる。三つある他の象限は ε−1 が生成するクラインの四元群の作用による一つ目の象限の像になる。

たとえば、a = ln 2(このとき cosh a = 5/4 および sinh a = 3/4)とすれば、行列の形で

A = exp [ 0 a a 0 ] = [ cosh a sinh a sinh a cosh a ] = [ 1.25 .75 .75 1.25 ] {\displaystyle A=\exp \!{\begin{bmatrix}0&a\\a&0\end{bmatrix}}={\begin{bmatrix}\cosh a&\sinh a\\\sinh a&\cosh a\end{bmatrix}}={\begin{bmatrix}1.25&.75\\.75&1.25\end{bmatrix}}}

と書くことができるから、この行列は

ln A = [ 0 ln 2 ln 2 0 ] {\displaystyle \ln A={\begin{bmatrix}0&\ln 2\\\ln 2&0\end{bmatrix}}}

を対数に持つ。しかし、以下の行列

[ 3 / 4 5 / 4 5 / 4 3 / 4 ] ,   [ 3 / 4 5 / 4 5 / 4 3 / 4 ] ,   [ 5 / 4 3 / 4 3 / 4 5 / 4 ] {\displaystyle {\begin{bmatrix}3/4&5/4\\5/4&3/4\end{bmatrix}},\ {\begin{bmatrix}-3/4&-5/4\\-5/4&-3/4\end{bmatrix}},\ {\begin{bmatrix}-5/4&-3/4\\-3/4&-5/4\end{bmatrix}}} .

は対数を持たない。これらは、上述の四元群の作用の下で対数を持つ上記の行列 A の共軛として得られるほかの三つを表している。

正則な 2×2 実行列 2 x 2 行列が必ずしも対数を持つとは限らないが、この四元群による作用のもと対数を持つ行列に共役になる。

また以下のようなことも従う。たとえば、上述の行列 A平方根(英語版)は指数函数に (ln A)/2 を代入することにより、直接的に

A = [ cosh ( ( ln 2 ) / 2 ) sinh ( ( ln 2 ) / 2 ) sinh ( ( ln 2 ) / 2 ) cosh ( ( ln 2 ) / 2 ) ] = [ 1.06 .35 .35 1.06 ] {\displaystyle {\sqrt {A}}={\begin{bmatrix}\cosh((\ln 2)/2)&\sinh((\ln 2)/2)\\\sinh((\ln 2)/2)&\cosh((\ln 2)/2)\end{bmatrix}}={\begin{bmatrix}1.06&.35\\.35&1.06\end{bmatrix}}}

と計算することができる。

より豊かな例として、初めに ピタゴラスの三つ組(英語版) (p, q, r) をとって a = ln(p + r) − ln q とおくと

e a = p + r q = cosh a + sinh a {\displaystyle e^{a}={\frac {p+r}{q}}=\cosh a+\sinh a}

が成り立つ。するといま

exp [ 0 a a 0 ] = [ r / q p / q p / q r / q ] {\displaystyle \exp \!{\begin{bmatrix}0&a\\a&0\end{bmatrix}}={\begin{bmatrix}r/q&p/q\\p/q&r/q\end{bmatrix}}}

となるから

1 q [ r p p r ] {\displaystyle {\frac {1}{q}}{\begin{bmatrix}r&p\\p&r\end{bmatrix}}}

は行列

[ 0 a a 0 ] ( a = ln ( p + r ) ln q ) {\displaystyle {\begin{bmatrix}0&a\\a&0\end{bmatrix}}\quad (a=\ln(p+r)-\ln q)}

を対数に持つ。

関連項目

脚注

出典

  1. ^ Higham (2008), Theorem 1.27
  2. ^ Higham (2008), Theorem 1.31
  3. ^ Culver (1966)
  4. ^ Engø (2001)
  5. ^ Hall 2015 Theorem 3.42

参考文献

  • Gantmacher, Felix R. (1959), The Theory of Matrices, 1, New York: Chelsea, pp. 239–241 .
  • Hall, Brian C. (2015), Lie Groups, Lie Algebras, and Representations An Elementary Introduction, Graduate Texts in Mathematics, 222 (2nd ed.), Springer, ISBN 0-387-40122-9 
  • Culver, Walter J. (1966), “On the existence and uniqueness of the real logarithm of a matrix”, Proceedings of the American Mathematical Society 17 (5): 1146–1151, doi:10.1090/S0002-9939-1966-0202740-6, ISSN 0002-9939 .
  • Higham, Nicholas (2008), Functions of Matrices. Theory and Computation, SIAM, ISBN 978-0-89871-646-7 .
  • Engø, Kenth (June 2001), “On the BCH-formula in so(3)”, BIT Numerical Mathematics 41 (3): 629–632, doi:10.1023/A:1021979515229, ISSN 0006-3835, http://www.ii.uib.no/publikasjoner/texrap/abstract/2000-201.html 

外部リンク

  • matrix logarithm - PlanetMath.(英語)
  • logarithm in nLab
連立一次方程式
ベクトル
ベクトル空間
計量ベクトル空間
行列線型写像
演算・操作
不変量
クラス
行列式
多重線型代数
数値線形代数
基本的な概念
ソフトウェア
ライブラリ
反復法・技法
人物
行列値関数
その他
カテゴリ カテゴリ