行列の固有値分解

Python, ML, Math15 January 2021

個人的学習用のため、ミスがあったらすみません。

固有値分解とは

固有値を持つ正則行列\(A\)に対して、対角化をすることとほぼ同義。以下のような式が成立する。

$$ P^{-1}AP = \Lambda$$
  • \(A\)は固有値を持つ正則行列
  • \(P\)\(A\)の固有ベクトルを並べた行列
  • \(\Lambda\)\(A\)の固有値を対角成分に並べた対角行列

例題

以下の正則行列\(A\)を固有値分解する。

$$A = \begin{pmatrix} 8 & 1 \\ 4 & 5 \end{pmatrix} $$

1. 固有方程式から固有値を求める

$$ |A - \lambda E| = 0 $$
$$ det\begin{pmatrix} 8 - \lambda & 1 \\ 4 & 5 - \lambda \end{pmatrix} = 0 $$
$$ ( 8 - \lambda )( 5 - \lambda ) - 4 = 0$$

\(\lambda\)の2次方程式を解くと、

$$ \lambda = 4, 9 $$

2. 固有ベクトル\(\vec{x}\)を求める

$$ (A - \lambda E) \vec{x} = 0 $$

2-1. \(\lambda = 4\)の時の固有ベクトル\(\vec{x_1}\)を求める

$$\vec{x_1} = \begin{pmatrix} s_1 \\ s_2 \end{pmatrix}$$

とすると、以下が成立する。

$$\begin{pmatrix} 4 & 1 \\ 4 & 1 \end{pmatrix} \begin{pmatrix} s_1 \\ s_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} $$

よって、

$$ 4s_1 + s_2 = 0 $$
$$ \vec{x_1} = k_1\begin{pmatrix} -1 \\ 4 \end{pmatrix}$$

\(k_1\)は、0でない任意の実数

2-2. \(\lambda = 9\)の時の固有ベクトル\(\vec{x_2}\)を求める

手順は\(2-1\)と同様なので省略

$$ \vec{x_2} = k_2\begin{pmatrix} 1 \\ 1 \end{pmatrix}$$

3. 固有値分解(対角化)

冒頭の定義式から、以下が成立するので、\(P\)を求め代入する。

$$ P^{-1}AP = \Lambda$$

\(P\)は固有ベクトルを並べた行列なので、

$$ P = \begin{pmatrix} k_1 & k_2 \end{pmatrix} = \begin{pmatrix} -1 & 1 \\ 4 & 1 \end{pmatrix} $$

また、逆行列\(P^{-1}\)は、\(2 \times 2\)逆行列の公式より、

$$P^{-1} = \frac{1}{-1 \times 1 - 1 \times 4} \begin{pmatrix} 1 & -1 \\ -4 & -1 \end{pmatrix} = \begin{pmatrix} -\frac{1}{5} & \frac{1}{5} \\ \frac{4}{5} & \frac{1}{5} \end{pmatrix}$$

よって、

$$P^{-1}AP = \Lambda = \begin{pmatrix} -\frac{1}{5} & \frac{1}{5} \\ \frac{4}{5} & \frac{1}{5} \end{pmatrix} \begin{pmatrix} 8 & 1 \\ 4 & 5 \end{pmatrix} \begin{pmatrix} -1 & 1 \\ 4 & 1 \end{pmatrix} = \begin{pmatrix} 4 & 0 \\ 0 & 9 \end{pmatrix}$$

これは固有値を対角成分に並べた対角行列となっている

tags: Python, ML, Math