8
大学数学基礎解説
文献あり

スペクトル分解による行列の指数関数と対数関数の計算

2823
0
$$$$

はじめに

スペクトル分解を使うと行列の指数関数や対数関数がすっきりと計算できることを示したつもりのメモを残す。

スペクトル分解と行列の多項式

対称行列に関して以下の定理が成り立つ。

スペクトル分解

$n$次対称行列$A$に対して次の性質を持つ直交射影行列$P_1, \cdots, P_k$と相異なる実数$\lambda_1, \cdots, \lambda_k$で次を満たすものが存在する($E$は単位行列で$O$は零行列).

$$ \begin{eqnarray} E &=& P_1 + P_2 + \cdots + P_k\\ P_i P_j &=& O \; (i \neq j) \\ A &=& \lambda_1 P_1 + \lambda_2 P_2 + \cdots + \lambda_k P_k \end{eqnarray} $$

このスペクトル分解を認めると、例えば$A^2$

$$ \begin{eqnarray} A^2 &=&( \lambda_1 P_1 + \lambda_2 P_2 + \cdots + \lambda_k P_k)^2 \\ &=& \lambda_1^2 P_1^2 + \lambda_2^2 P_2^2 + \cdots + \lambda_k^2 P_k^2\\ &=& \lambda_1^2 P_1 + \lambda_2^2 P_2 + \cdots + \lambda_k^2 P_k \end{eqnarray} $$

と計算できる。一般に$A^m$
$$ A^m = \lambda_1^m P_1 + \lambda_2^m P_2 + \cdots + \lambda_k^m P_k $$
と計算できる。

行列の多項式を定義しておこう。

行列の多項式

多項式$f(x)$
$$ f(x) = a_0 + a_1 x + a_2 x^2 + \cdots +a_m x^m $$
のように与えられたとき、正方行列$A$に対する多項式$f(A)$
$$ f(A) = a_0E + a_1 A + a_2 A^2 + \cdots +a_m A^m $$
によって定義する($E$は単位行列)。

スペクトル分解により、$f(A)$はまた
$$ \begin{eqnarray} f(A) &=& a_0 (P_1 + P_2 + \cdots + P_k)+ a_1 (\lambda_1 P_1 + \lambda_2 P_2 + \cdots + \lambda_k P_k) \\ && + a_2 (\lambda_1^2 P_1 + \lambda_2^2 P_2 + \cdots + \lambda_k^2 P_k) + \cdots + a_m (\lambda_1^m P_1 + \lambda_2^m P_2 + \cdots + \lambda_k^m P_k) \\ &=& (a_0 + a_1\lambda_1 + a_2 \lambda_1^2 + \cdots + a_m \lambda_1^m)P_1 + (a_0 + a_1\lambda_2 + a_2 \lambda_2^2 + \cdots + a_m \lambda_2^m)P_2\\ && \cdots + (a_0 + a_1\lambda_k + a_2 \lambda_k^2 + \cdots + a_m \lambda_k^m)P_k\\ &=& f(\lambda_1) P_1 + f(\lambda_2) P_2 + \cdots f(\lambda_k) P_k \end{eqnarray} $$
となり、効率的に行列の多項式が計算できる。ちなみに行列多項式$f(A)$の固有値が$f(\lambda_i) \;(i=1,2,\ldots, k)$となることを述べているのがフロベニウスの定理である。

行列の指数関数と対数関数

さてここで、正方行列$A$の指数関数を定義する。

行列の指数関数

$$ e^{tA} = \sum_{n=0}^{\infty} \frac{1}{n!} (tA)^n = E + tA + \frac{t^2}{2!}A^2 + \frac{t^3}{3!}A^3 + \cdots $$

もはや行列の多項式ではないが、この行列の指数関数の計算にもスペクトル分解が役に立つ。形式的に「代入」すれば
$$ \begin{eqnarray} e^{tA} &=& (P_1 + P_2 + \cdots + P_k) + t (\lambda_1 P_1 + \lambda_2 P_2 + \cdots + \lambda_k P_k) \\ && +\frac{t^2}{2!} (\lambda_1^2 P_1 + \lambda_2^2 P_2 + \cdots + \lambda_k^2 P_k) + \frac{t^3}{3!} (\lambda_1^3 P_1 + \lambda_2^3 P_2 + \cdots + \lambda_k^3 P_k) \\ && + \cdots + \frac{t^m}{m!} (\lambda_1^m P_1 + \lambda_2^m P_2 + \cdots + \lambda_k^m P_k) + \cdots \\ &=& e^{t\lambda_1}P_1 + e^{t\lambda_2}P_2 + \cdots + e^{t\lambda_k}P_k \end{eqnarray} $$

特に$t=1$とおくと
$$ e^A = e^{\lambda_1}P_1 + e^{\lambda_2}P_2 + \cdots + e^{\lambda_k}P_k $$
が得られる。

行列の対数関数

正方行列$A$に対して
$$ e^{B} = A $$
を満たす正方行列$B$$A$の指数関数と呼ぶことにし、$B=\log(A)$と書く。

もし、$A$の固有値がことごとく正の値だとして、直交射影行列を用いて
$$ B = \log(\lambda_1) P_1 + \log(\lambda_2) P_2 + \cdots + \log(\lambda_k) P_k $$
により行列$B$を定義してみる。そして$e^B$を計算してみれば、
$$ \begin{eqnarray} e^B &=& e^{\log \lambda_1} P_1 + e^{\log \lambda_2} P_2 + \cdots + e^{\log \lambda_k} P_k \\ &=& \lambda_1 P_1 + \lambda_2 P_2 + \cdots + \lambda_k P_k\\ &=& A \end{eqnarray} $$
となるから、まさに$B=\log (A)$が計算できたわけである。

おわりに

スペクトル分解たのしい(雑)

参考文献

[1]
伊藤正之 鈴木紀明, 数学基礎 線形代数, 培風館, 1998
投稿日:20211121
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中