24. 固有値と固有ベクトル
行列の固有値と固有ベクトルは、線形代数での重要な概念であり、2次形式の標準形、機械学習、信号処理、物理学など幅広い分野で応用される。
固有値
行列 \(A\)に対して、式(1)の条件を満たすスカラー \(\lambda\)を 固有値という。$$A v = \lambda v\;\;\; \cdots(1)$$ここで、\(A\)は\(n \times n\)の正方行列、\(v\) はゼロでない\(n \times 1\)のベクトル(固有ベクトル)、\(\lambda\)はスカラー(固有値)である。
つまり、固有ベクトルは行列\(A\)の作用によって「方向が変わらない」ベクトルであり、その伸縮率が固有値 \(\lambda\)になる ということを意味する。
固有ベクトル
固有値 \(\lambda\)に対応するベクトル\(v\)を 固有ベクトル という。固有ベクトルは、式(2)の方程式を満たす。$$(A - \lambda I) v = 0 \;\;\; \cdots(2)$$ここで、\(I\)は単位行列である。
※注意点
・固有値と固有ベクトルは、正方行列に対してのみ定義される。
・固有ベクトルは、スカラー倍しても固有ベクトルのままである。
・固有値が重複する場合、対応する固有ベクトルが複数存在することがある。
固有値と固有ベクトルの求め方
・固有値を求める
固有値は式(3)の特性方程式を解くことで求まる。$$\det(A - \lambda I) = 0 \;\;\; \cdots(3)$$これは、\(A - \lambda I\)の行列式が 0 となる 固有値の方程式 である。
・固有ベクトルを求める
求めた固有値 \(\lambda\)を\((A - \lambda I) v = 0\)に代入し、線形方程式を解くことで対応する固有ベクトル \(v\)を求める。
固有値と固有ベクトルの具体例
行列\(A\)を$$A = \begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix}$$とする。
特性方程式を求める。$$\det(A - \lambda I) = 0 \\ \begin{vmatrix} 3 - \lambda & 1 \\ 1 & 3 - \lambda \end{vmatrix} = (3 - \lambda)^2 - 1 = 0 \\ \lambda^2 - 6\lambda + 8 = 0\\ (\lambda - 4)(\lambda - 2) = 0$$よって、固有値は、\(\lambda_1 = 4, \quad \lambda_2 = 2\)である。
求めた固有値 \(\lambda\)を\((A - \lambda I) v = 0\)に代入し、固有ベクトル \(v\)を求める。
固有値 \(\lambda_1 = 4\)の場合$$\begin{bmatrix} -1 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}$$なので、解は、\(v_1 = v_2\)で、一つの固有ベクトルは$$v_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix}$$となる。
固有値 \(\lambda_2 = 2\)の場合$$\begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}$$なので、解は、\(v_1 = -v_2\)で、一つの固有ベクトルは$$v_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix}$$となる。
固有値分解
固有値分解とは、正方行列を固有ベクトルと固有値を用いて分解する手法である。\(n\)次正方行列\(A\)が、\(n\) 個の線形独立な固有ベクトルを持つとき、式(4)のように分解することができる。$$A=PDP^{-1} \;\;\;\cdots (4)$$ここで、\(P\) は対応する固有ベクトルを並べた行列$$P =\begin{bmatrix} v_1 & v_2 & v_3 & \cdots & v_n \end{bmatrix}$$ \(D\) は 対角行列で、固有値を対角成分として持つ。$$D = \begin{bmatrix} \lambda_1 & 0 & 0 & \dots & 0 \\ 0 & \lambda_2 & 0 & \dots & 0 \\ 0 & 0 & \lambda_3 & \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & \lambda_n \end{bmatrix}$$各\(\lambda_i\)は 行列\(A\)の固有値である。また、式(4)より、\(D = P^{-1}AP\)である。
固有値分解は、行列 \(A\) による線形変換を、以下の3つのステップに分解して考えることができることを意味する。
1.\(P^{-1}\): ベクトルを固有ベクトル空間に変換する。
2.\(D\): 固有ベクトル空間内で、各固有ベクトルを対応する固有値倍する。
3.\(P\): 固有ベクトル空間から元の空間に戻す。
つまり、固有値分解は、線形変換を固有ベクトルの方向に分解し、それぞれの方向でスカラー倍する操作に分解するものである。固有値分解とは、行列を「固有ベクトルの基底で対角化すること」とも言える。
*正方行列\( A\) が固有値分解できるためには、「\(A\)が \(n\)個の線形独立な固有ベクトルを持つこと」が条件となる。この条件は、\(A\) が対角化可能であることと同値である。
Scilabによる固有値、固有ベクトルの計算
Scilab を使って、固有値と固有ベクトルを求めるには spec() 関数を使う。
// 行列の定義
A = [3 1; 1 3];
// 固有値と固有ベクトルの計算
[P, D] = spec(A);
// 結果の表示
disp("固有値行列 D:");
disp(D);
disp("固有ベクトル行列 P:");
disp(P);
// D には固有値が対角成分として格納される。
// P には対応する固有ベクトルが格納される。
行列の2次形式の標準形
行列の 2次形式とは、以下の形の式を指しす。$$Q(x) = x^T A x$$ここで、\(x\)は \(n \times 1\)のベクトル、\(A\)は \(n \times n\)の 対称行列である。この 2次形式の標準形を求めるとは、座標変換を用いて 対角化 し、より単純な形に変換することを意味する。
行列\(A\)が対称行列である場合、固有値分解を用いることで、2次形式は式(5)の形に変形できる。$$Q(x) = x^T A x \;\;\; \cdots (5)$$これを適切な座標変換を施すことで、式(6)とできる。この式(6)を標準形という。$$Q(y) = \lambda_1 y_1^2 + \lambda_2 y_2^2 + \cdots + \lambda_n y_n^2 \;\;\; \cdots(6)$$ここで、\(\lambda_i\)は行列\(A\)の 固有値、また、\(y = P^T x\)で、\(P\)は\(A\)の 直交固有ベクトル を列に持つ行列である。つまり、適切な変数変換を行うと、2次形式は固有値の和の形に単純化できる 。
標準形の導出
1.固有値と固有ベクトルを求める
・\(A\)の固有値 \(\lambda_1, \lambda_2, \ldots, \lambda_n\) を求める。
・\(A\)の対応する固有ベクトルを求めて、直交行列\(P\)を作る。\(A=PDP^{-1}\)(\(D\)は対角行列)
2.座標変換を適用する
・変数変換 \(x = P y\)を適用する。
・\(y^T D y\)の形に変換する。\(D = P^{-1}AP\)
この結果、2次形式は 標準形 である以下の形になる$$Q(y) = \lambda_1 y_1^2 + \lambda_2 y_2^2 + \cdots + \lambda_n y_n^2$$これは、直交変換によって対角化した形 になる。
標準形変換の例
次の 2 次形式を標準形に変換する。$$Q(x) = x^T A x, \quad A = \begin{bmatrix} 3 & 1 \\ 1 & 3 \end{bmatrix}$$
・ 固有値を求める
固有値方程式を解く。$$\det(A - \lambda I) = 0 \\ \begin{vmatrix} 3 - \lambda & 1 \\ 1 & 3 - \lambda \end{vmatrix} = (3 - \lambda)^2 - 1 = 0 \\ \lambda^2 - 6\lambda + 8 = 0 \\ (\lambda - 4)(\lambda - 2) = 0$$従って、固有値は \(\lambda_1 = 4,\;\lambda_2 = 2\)である。
・ 固有ベクトルを求める
\((A - 4I) v = 0\) を解く。$$\begin{bmatrix} -1 & 1 \\ 1 & -1 \end{bmatrix} \begin{bmatrix} v_1 \\ v_2 \end{bmatrix} = 0$$ \(v_1 = v_2\)従って、固有ベクトルは $$v_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix}$$同様に\((A - 2I) v = 0\)を解くと、$$v_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix}$$
・直交行列\(P\) を作成する。$$P = \begin{bmatrix} 1/\sqrt{2} & 1/\sqrt{2} \\ 1/\sqrt{2} & -1/\sqrt{2} \end{bmatrix}$$ $$D = P^{-1}AP = \begin{bmatrix} 4 & 0 \\ 0& 2 \end{bmatrix}$$
・変数変換を適用する。\(y = P^T x\)とすると、2次形式は、$$Q(y) = 4 y_1^2 + 2 y_2^2$$となり、これが標準形である。