行列の固有値分解

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