固有値と固有ベクトル#

固有値と固有ベクトル#

定義#

\(n\)次の正方行列\(A\)に対して

\[ A \boldsymbol{x} = \lambda \boldsymbol{x} \]

が成り立つとき、スカラー\(\lambda\)\(A\)固有値(eigenvalue)といい、 \(n\)次元ベクトル\(\boldsymbol{x} (\neq \boldsymbol{0})\)\(A\)\(\lambda\)に対応する固有ベクトル(eigenvector)と呼ぶ。

線形変換を使う定義#

ベクトル空間\(V\)から自分自身への線形写像を 線形変換 という。

「線形変換\(f:V\to V\)が与えられたとき、あるベクトル\(x \neq 0\)があって、\(f\)\(x\)\(x\)の定数倍\(\lambda x\)に写すようにできるだろうか?」が固有値の議論の出発点となる

定義

線形変換 \(f: V \rightarrow V\) において

\[ f(\boldsymbol{x})=\lambda \boldsymbol{x}, \quad \boldsymbol{x} \in V, \quad \boldsymbol{x} \neq \mathbf{0}, \quad \lambda \in \mathbb{R} \]

をみたす \(\lambda\)\(f\)固有値\(x\) を固有値 \(\lambda\) に属する 固有ベクトル という。

線形写像は具体的には行列で表すことができるため(線形写像の行列表現)、 \(f(\boldsymbol{x})=\lambda \boldsymbol{x}\)\(A\boldsymbol{x}=\lambda \boldsymbol{x}\)と等しい。

固有空間#

定理

ベクトル空間 \(V\) の線形変換 \(f\) の固有値の 1 つを \(\lambda\) とする。 \(\lambda\) に 属する \(f\) の固有ベクトル全体とゼロベクトルからなる集合 \(V(\lambda)\) は集合

\[ \{\boldsymbol{x} \in V \mid f(\boldsymbol{x})=\lambda \boldsymbol{x}\} \]

と一致し、 \(V\) の部分空間になる。なお、\(V(\lambda)\)\(f\)の固有値\(\lambda\)に属する 固有空間 という。

証明

(1) \(\boldsymbol{0}\in V(\lambda)\)について

\(\boldsymbol{x} = \boldsymbol{0}\)も等式\(f(\boldsymbol{x})=\lambda \boldsymbol{x}\)を満たす

(2) 和について

\(\boldsymbol{x}_1, \boldsymbol{x}_2 \in V\)に対し

\[ f(\boldsymbol{x}_1 + \boldsymbol{x}_2) = f(\boldsymbol{x}_1) + f(\boldsymbol{x}_2) = \lambda \boldsymbol{x}_1 + \lambda \boldsymbol{x}_2 = \lambda (\boldsymbol{x}_1 + \boldsymbol{x}_2) \]

より、

\[ \boldsymbol{x}_1 + \boldsymbol{x}_2 \in V(\lambda) \]

(3) 定数倍について

\(\boldsymbol{x} \in V, c \in \mathbb{R}\)に対し、

\[ f(c\boldsymbol{x}) = c f(\boldsymbol{x}) = c \lambda \boldsymbol{x} = \lambda (c\boldsymbol{x}) \]

より

\[ c \boldsymbol{x} \in V(\lambda) \]

よって部分空間の3条件(1)~(3)を満たすため、\(V(\lambda)\)\(V\)の部分空間である

固有空間は、\(f\)に対応する\(n\)次正方行列\(A\)\(n\)次単位行列\(I\)を用いて

\[ \operatorname{Ker}(A - \lambda I) = \{\boldsymbol{x} \in V \mid (A - \lambda I) \boldsymbol{x} = 0 \} \]

と表すこともできる。

広義固有空間#

ある自然数\(k\)に対して

\[ (A - \lambda I)^k \boldsymbol{x} = 0 \]

を満たす\(\boldsymbol{x} \in \mathbb{R}^n\)\(A\)の固有値\(\lambda\)に対する 広義固有ベクトル (generalized eigenvector) という。

固有値\(\lambda\)に対する広義固有ベクトル全体に\(\boldsymbol{0}\)を加えた集合

\[ \widetilde{W}(\lambda) = \{ \boldsymbol{x} \in \mathbb{R}^n \mid \exists k \in \mathbb{N}, (A - \lambda I)^k \boldsymbol{x} = 0 \} \]

\(\lambda\)に対する 広義固有空間 (generalized eigenspace) という。

広義固有空間も\(\mathbb{R}^n\)の部分空間である

\[\begin{split} \begin{aligned} & \boldsymbol{x}, \boldsymbol{y} \in \widetilde{W}(\alpha), c \in \mathbb{C} \text { とする。このとき, } \\ & \qquad(A-\alpha I)^k \boldsymbol{x}=\mathbf{0}, \quad(A-\alpha I)^l \boldsymbol{y}=\mathbf{0} \end{aligned} \end{split}\]

となる自然数 \(k, l\) がとれる.すると。

\[\begin{split} \begin{aligned} & (A-\alpha I)^{k+l}(\boldsymbol{x}+\boldsymbol{y})=\mathbf{0} \\ & (A-\alpha I)^k(c \boldsymbol{x})=c(A-\alpha I)^k \boldsymbol{x}=\mathbf{0} \end{aligned} \end{split}\]

により、 \(\boldsymbol{x}+\boldsymbol{y}, c \boldsymbol{x} \in \widetilde{W}(\alpha)\) である. よって \(\widetilde{W}(\alpha)\) は部分空間である。

固有値の必要十分条件#

定理

\(n\) 次正方行列 \(A\) が与えられたとき、 \(\lambda\)\(A\) の固有値である必要十分条件は

\[ \det( A - \lambda I) = 0 \]

をみたすことである。 ここで \(I\)\(n\) 次単位行列である。

固有方程式#

\[ A \boldsymbol{x} = \lambda \boldsymbol{x} \]

は単位行列\(I\)を用いて

\[ (A - \lambda I) \boldsymbol{x} = \boldsymbol{0} \]

と表すことができる(もちろん\((\lambda I - A) \boldsymbol{x} = \boldsymbol{0}\)も可)。

斉次連立一次方程式の解が非自明な解 \(\boldsymbol{x} \neq \boldsymbol{0}\)を持つことと、行列式\(\det(A-\lambda I) = 0\)となることは同値であるので、固有ベクトルが\(\boldsymbol{x} \neq \boldsymbol{0}\)であるためには

\[ \det(A - \lambda I) = 0 \]

でなければならない。この式を 固有方程式 あるいは 特性方程式 と呼び、固有値は固有方程式の解として求める。

固有多項式(特性多項式)#

\(n\)次正方行列\(A\)に対し、

\[\begin{split} \phi_A(\lambda) = \det( A - \lambda I) = \det\left(\begin{array}{cccc} a_{11}-\lambda & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22}-\lambda & \cdots & a_{2 n} \\ \vdots & & \ddots & \vdots \\ a_{n 1} & \cdots & \cdots & a_{n n}-\lambda \end{array}\right) \end{split}\]

で定義される変数\(\lambda\)についての多項式\(\phi_A(\lambda)\)を、行列\(A\)固有多項式 または 特性多項式という。

固有値・固有ベクトルの求め方#

例題
\[\begin{split} A = \begin{pmatrix} 1 & 1\\ 2 & 2 \end{pmatrix} \end{split}\]

とする。

\(A\)の固有値と、各固有値に属する1つの固有ベクトルと、固有空間\(V(\lambda)\)を求めよ

固有値を求める#

\((A-\lambda E)x = 0\)が非自明な解\(x\neq 0\)を持つためには\(\det(A - \lambda E)=0\)である必要があるため、そのような\(\lambda\)を求める(固有方程式を解く)

(もし\(A\)が対角行列などの行列式を求めやすい形状の行列であった場合、この部分が少し楽になるので活用しよう)

\[\begin{split} \begin{aligned} \det(A - \lambda I) &= \det \begin{pmatrix} 1 - \lambda & 1\\ 2 & 2 - \lambda \end{pmatrix}\\ &= (1 - \lambda)(2 - \lambda) - 2\\ &= 2 - 3\lambda + \lambda^2 - 2\\ &= \lambda^2 - 3\lambda\\ &= (\lambda - 3) \lambda &= 0 \end{aligned} \end{split}\]

なので、\(\lambda = 0, 3\)

固有空間・固有ベクトルを求める#

固有値に対応するベクトルを求める

\(\lambda = 0\)の場合:

\[ Ax = \lambda x \]

\[\begin{split} \begin{pmatrix} 1 & 1\\ 2 & 2 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \lambda \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} \end{split}\]

であり

\[\begin{split} \begin{cases} x_1 + x_2 = 0\\ 2 x_1 + 2 x_2 = 0 \end{cases} \end{split}\]

となる。

これを解くと

\[\begin{split} x_1 = -x_2\\ x_2 = -x_1 \end{split}\]

つまり

\[\begin{split} \boldsymbol{x} = \begin{pmatrix} x_1 \\ -x_1 \end{pmatrix} \end{split}\]

であるため、未知の数\(c\in\mathbb{R}\)をもちいて

\[\begin{split} \boldsymbol{x} = c \begin{pmatrix} 1 \\ -1 \end{pmatrix} \end{split}\]

と表すことができる。そのため、例えば \(\begin{pmatrix}1 \\ -1\end{pmatrix}\)は固有値\(0\)に属する固有ベクトルのひとつになる。

固有空間は

\[\begin{split} V(0) = \left . \left\{ c \begin{pmatrix} 1 \\ -1 \end{pmatrix} \right | c\in \mathbb{R} \right\} \end{split}\]

となる。

\(\lambda = 3\)の場合:

\[ Ax = \lambda x \]

\[\begin{split} \begin{cases} x_1 + x_2 = 3x_1\\ 2 x_1 + 2 x_2 = 3x_2 \end{cases} \end{split}\]

となる。

これを解くと

\[ x_2 = 2 x_1 \]

であるため、

\[\begin{split} \boldsymbol{x} = \begin{pmatrix} x_1 \\ 2 x_1 \end{pmatrix} = c \begin{pmatrix} 1 \\ 2 \end{pmatrix}, c\in \mathbb{R} \end{split}\]

となり、例えば\(\begin{pmatrix}1 \\ 2\end{pmatrix}\)が固有値\(3\)の固有ベクトルの一つである。

固有空間\(V(\lambda)\)

\[\begin{split} V(3) = \left . \left\{ c \begin{pmatrix} 1 \\ 2 \end{pmatrix} \right | c\in \mathbb{R} \right\} \end{split}\]

となる。

numpy#

numpyのnumpy.linalg.eig()の返り値はノルムが1になるように正規化されている

import numpy as np

A = np.array([
    [1, 1],
    [2, 2],
])

lambdas, vectors = np.linalg.eig(A)
print(f"""
λ={lambdas}
x1={vectors[:, 0].round(3)}
x1'={(vectors[:, 0].round(3) * -np.sqrt(2)).round(1)}
x2={vectors[:, 1].round(3)}
x2'={(vectors[:, 1].round(3) * -np.sqrt(5)).round(1)}
""")
λ=[0. 3.]
x1=[-0.707  0.707]
x1'=[ 1. -1.]
x2=[-0.447 -0.894]
x2'=[1. 2.]
np.array([1, -1]) / np.sqrt(2)
array([ 0.70710678, -0.70710678])

\(\lambda=0\)について、 $\( \boldsymbol{x} = -\frac{1}{\sqrt{5}} \begin{pmatrix} 1 \\ 2 \end{pmatrix} \simeq \begin{pmatrix} 0.447 \\ 0.894 \end{pmatrix} \)$

\(\lambda=3\)について、 $\( \boldsymbol{x} = -\frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix} \simeq \begin{pmatrix} -0.707 \\ 0.707 \end{pmatrix} \)$

例1. 対角行列

対角行列の固有値は対角成分になる。

\[\begin{split} A = \begin{pmatrix} 4 & 0\\ 0 & 3 \end{pmatrix} \end{split}\]

なら

\[\begin{split} \phi_A(\lambda) = \det \begin{pmatrix} 4 - \lambda & 0 \\ 0 & 3 - \lambda \end{pmatrix} = 0 \end{split}\]

より

\[ (4 - \lambda)(3 - \lambda) = 0 \]

なので解は

\[ \lambda = 4, 3 \]
import numpy as np

A = np.array([
    [4, 0],
    [0, 3],
])

lambdas, vectors = np.linalg.eig(A)
print(f"""
λ={lambdas}
x1={vectors[:, 1].round(3)}
x2={vectors[:, 0].round(3)}
""")
λ=[4. 3.]
x1=[0. 1.]
x2=[1. 0.]

例2.

\[\begin{split} A = \begin{pmatrix} 3 & -2\\ 1 & 0 \end{pmatrix} \end{split}\]

なら

\[\begin{split} \begin{align} \phi_A(\lambda) &= \det \begin{pmatrix} 3 - \lambda & -2 \\ 1 & - \lambda \end{pmatrix} = 0 \\ &= (3 - \lambda) \cdot (- \lambda) - (-2) \cdot 1\\ &= \lambda^2 - 3 \lambda + 2\\ &= (\lambda - 2) (\lambda - 1) \end{align} \end{split}\]

よって\(\lambda = 2, 1\)

import numpy as np

A = np.array([
    [3, -2],
    [1, 0],
])

lambdas, vectors = np.linalg.eig(A)
print(f"""
λ={lambdas}
x1={vectors[:, 1].round(3)}
x2={vectors[:, 0].round(3)}
""")
λ=[2. 1.]
x1=[0.707 0.707]
x2=[0.894 0.447]

固有ベクトルの計算#

固有値が求まれば、あとは定義にあうベクトルを求めるのみ。

例1.

\[\begin{split} A = \begin{pmatrix} 3 & -2\\ 1 & 0 \end{pmatrix} \end{split}\]

の場合、\(\lambda = 1, 2\)なので

まず\(\lambda = 1\)の場合

\[\begin{split} \begin{align} A \boldsymbol{x} &= \lambda \boldsymbol{x} \\ \to \begin{pmatrix} 3 & -2\\ 1 & 0 \end{pmatrix} \begin{pmatrix} x_1\\ x_2 \end{pmatrix} &= \begin{pmatrix} x_1\\ x_2 \end{pmatrix} \end{align} \end{split}\]

なので

\[\begin{split} \begin{align} 3x_1 - 2x_2 &= x_1\\ x_1 &= x_2 \end{align} \end{split}\]

これを解き、\(0\)以外の任意の数\(s\)を使って表すと

\[\begin{split} \boldsymbol{x} = s \begin{pmatrix} 1\\ 1 \end{pmatrix} \end{split}\]

となる。

そのため、固有空間\(W(\lambda)\)

\[ W(1) = \left\{\left. s \binom{1}{1} \right\rvert\, s \in \boldsymbol{R} \right\} . \]

であり、固有空間のうちの一つの固有ベクトルが\(\binom{1}{1}\)となる。

\(\lambda = 2\)の場合、

\[\begin{split} \begin{pmatrix} 3 & -2\\ 1 & 0 \end{pmatrix} \begin{pmatrix} x_1\\ x_2 \end{pmatrix} = 2 \begin{pmatrix} x_1\\ x_2 \end{pmatrix} \end{split}\]
\[\begin{split} \begin{align} 3x_1 - 2x_2 &= 2x_1\\ x_1 &= 2x_2 \end{align} \end{split}\]
\[\begin{split} \boldsymbol{x} = s \begin{pmatrix} 2\\ 1 \end{pmatrix} \end{split}\]
  • 対象行列の固有値は負をとらない

  • 固有値に0がある(正定値じゃない)と、ランクが下がり、逆行列をもたない

固有値を求めやすい行列#

三角行列や対角行列は求めやすい

定理

\(n\) 次正方行列 \(A\) が三角行列であるとき、 \(A\) の固有値全体は重複もこめて \(A\) の対角成分と一致する

証明

\(A\)が次のような上三角行列だったとする。

\[\begin{split} A=\left(\begin{array}{cccc} a_{11} & a_{12} & \cdots & a_{1 n} \\ 0 & a_{22} & & \vdots \\ \vdots & \ddots & \ddots & \vdots \\ 0 & \cdots & 0 & a_{n n} \end{array}\right) \end{split}\]

行列\(A-\lambda I\)の行列式(固有多項式)は対角成分の積で求められるため

\[\begin{split} \varphi_A(\lambda)= \det \left(\begin{array}{cccc} a_{11}-\lambda & a_{12} & \cdots & a_{1 n} \\ 0 & a_{22}-\lambda & & \vdots \\ \vdots & \ddots & \ddots & \vdots \\ 0 & \cdots & 0 & a_{n n}-\lambda \end{array}\right) = (a_{11}-\lambda)(a_{22}-\lambda)\cdots(a_{nn}-\lambda) \end{split}\]

となる。これを解くと、固有値は\(a_{11},a_{22},\cdots,a_{nn}\)と、対角成分である。

定理

\(n\) 次正方行列 \(A\)

\[\begin{split} A=\left(\begin{array}{ll} B & C \\ O & D \end{array}\right) \end{split}\]

の形をしているとする。 ここで \(B\)\(r\) 次正方行列、 \(C\)\(r \times s\) 行列、\(D\)\(s\) 次正方行列、\(O\) はすべての成分が 0 からなる \(s \times r\) 行列を表わす。 そのとき、

\[ \varphi_A(t)=\varphi_B(t) \cdot \varphi_D(t) \]

が成り立つ。したがって、行列 \(A\) の固有値の全体は重複もこめて、行列 \(B\) の固有値と、行列 \(D\) の固有値を合せたものと一致する。

固有値の重複度#

固有方程式の解の重複度を、固有値の 重複度 という。

固有値の重複度と固有空間の次元数には次のような関係がある

定理

\(A\in M_n(\mathbb{R})\)\(\lambda\)\(A\)の1つの固有値とするとき、

\(\lambda\)に属する固有空間の次元\(\leq\) \(\lambda\)の重複度

が成り立つ

\[\begin{split} A = \begin{pmatrix} 1 & 1\\ 0 & 1 \end{pmatrix} \end{split}\]

は、三角行列なので

\[\begin{split} \det(A - \lambda I) = \det \begin{pmatrix} 1-\lambda & 1\\ 0 & 1-\lambda \end{pmatrix} = (1-\lambda)^2 \end{split}\]

と、\(\lambda = 1\)だけが固有値で、その重複度は2である。固有空間\(V(1)\)

\[ V(1)=\left\{\left.c\binom{1}{0} \right\rvert\, c \in \boldsymbol{R}\right\} \]

この空間の次元は1である。

線形変換と表現行列の固有値は同じものになる。

定理

線形変換 \(f: V \rightarrow V\) が与えられたとき、 \(V\) の 1 つの基底をとり、 その基底に関する \(f\) の表現行列を \(A\) とする。そのとき、 \(f\) の固有値の集合は重複もこめて、 \(A\) の固有値の集合と一致する。

証明

\(v_1, \cdots, v_n\)\(V\) の 1 組の基底とする。 \(V\) のベクトル \(x\) をこの基底の 1 次結合 \(\boldsymbol{x}=x_1 \boldsymbol{v}_1+\cdots+x_n \boldsymbol{v}_n\) と書く。そのとき、

\[\begin{split} f(x)=\lambda \boldsymbol{x} \iff A\left(\begin{array}{c}x_1 \\ \vdots \\ x_n\end{array}\right)=\lambda\left(\begin{array}{c}x_1 \\ \vdots \\ x_n\end{array}\right) \end{split}\]

であるから、この定理の主張が成り立つ。

固有値・固有ベクトルに関する定理#

固有値・固有ベクトルの存在#

任意の正方行列について、「固有値・固有ベクトルは存在する」という解説と「固有値・固有ベクトルは存在するとは限らない」という解説がある。どちらが正しいのか・・・。

固有値・固有ベクトルは存在する#

\(\lambda\) に関する \(n\) 次方程式であるので、 代数学の基本定理によって、 複素数の範囲に解が存在することが保証される。

固有値と固有ベクトルの解説 ~ 具体例と性質 ~ (証明付)   - 理数アラカルト -

解があっても非自明な解とは限らないのでは

固有値・固有ベクトルは存在するとは限らない#

川久保(2010)の反例

行列 \(A=\left(\begin{array}{rr}0 & 1 \\ -1 & 0\end{array}\right)\) で与えられる線形変換 \(A: R^2 \rightarrow R^2\) を考える。

\[ A x=\lambda x \quad x=\binom{x}{y} \]

をみたす \(\lambda \in R\)\(\boldsymbol{x} \neq \mathbf{0}\) が存在したとすると、

\[\begin{split} \left(\begin{array}{rr} 0 & 1 \\ -1 & 0 \end{array}\right)\binom{x}{y}=\lambda\binom{x}{y} \end{split}\]

これより等式

\[\begin{split} \left\{\begin{array}{r} y=\lambda x \\ -x=\lambda y \end{array}\right. \end{split}\]

を得る。第1式を第2式に代入して

\[ -x=\lambda(\lambda x)=\lambda^2 x \text { ゆえに } \quad\left(\lambda^2+1\right) x=0 \]

となる. これより \(x=0\). これを第 1 式に代入して \(y=0\) となる. つまり \(\boldsymbol{x}=\boldsymbol{0}\) である。固有ベクトルはゼロベクトルでないものをいうから,これは固有ベク トルではない。つまり,この行列には固有値も固有ベクトルも存在しない。

(川久保勝夫. (2010). 線形代数学 [新装版]. より)

固有ベクトルの1次独立性#

定理

\(n\) 次正方行列 \(A\) の相異なる固有値を \(\lambda_1, \cdots, \lambda_s(s \leqq n)\) とする。 各固有値 \(\lambda_i\) に属する固有ベクトルを \(x_i\) とするとき、 \(x_1, \cdots, x_s\) は 1 次独立である。

証明

まず\(s=1\)のとき、固有ベクトルは\(x_1\neq \mathbf{0}\)なので、明らかに\(c_1 x_1 = \mathbf{0} \iff c_1 = 0\)なので1次独立である。

次に\(r \geq 2\)について、\(s = r - 1\)が1次独立だと仮定したとき\(s = r\)のときも1次独立となることを示す。

\(c_1,\cdots,c_n\in \mathbb{R}\)について、

\[ c_1 \boldsymbol{x}_1 + \cdots + c_s \boldsymbol{x}_s = 0 \tag{$*$} \]

とおくと、\((*)\)に左から\(A\)をかければ、\(A x_i = \lambda_i x_i\)より

\[ c_1 A \boldsymbol{x}_1 + \cdots + c_s A \boldsymbol{x}_s = c_1 \lambda_1 \boldsymbol{x}_1 + \cdots + c_s \lambda_s \boldsymbol{x}_s = 0 \]

他方、\((*)\)に左から\(\lambda_s\)をかければ、

\[ c_1 \lambda_s \boldsymbol{x}_1 + \cdots + c_s \lambda_s \boldsymbol{x}_s = 0 \]

となる。2つの式を引くと

\[\begin{split} \begin{aligned} &c_1 (\lambda_1-\lambda_s) \boldsymbol{x}_1 + \cdots + c_s (\lambda_s-\lambda_s) \boldsymbol{x}_s \\ &= c_1 (\lambda_1-\lambda_s) \boldsymbol{x}_1 + \cdots + c_{s-1} (\lambda_{s-1} -\lambda_s) \boldsymbol{x}_{s-1}\\ &= 0 \end{aligned} \end{split}\]

となる。異なる固有値に属する\(s-1\)個の固有ベクトル\(\boldsymbol{x}_1,\cdots, \boldsymbol{x}_{s-1}\)は1次独立であり、その係数はすべてゼロであるから、

\[ c_1 (\lambda_1-\lambda_s) = \cdots = c_{s-1} (\lambda_{s-1} -\lambda_s) = 0 \]

であり、すべての固有値\(\lambda_1, \cdots, \lambda_{s-1}\)が相異なるという仮定から、

\[ c_1 = \cdots = c_{s-1} = 0 \]

が導かれる。これらを\((*)\)に代入すれば

\[ c_s \boldsymbol{x}_s = 0 \]

となり、固有ベクトルの定義より\(\boldsymbol{x}_s\neq \boldsymbol{0}\)であるため、\(c_s = 0\)である。

よって\(\boldsymbol{x}_1,\cdots,\boldsymbol{x}_s\)は1次独立である

三角化定理#

線形変換\(f\)の固有多項式\(\phi(\lambda)\)\(n\)個の1次式の積に分解される

三角化定理

\(V\)\(\boldsymbol{K}\) 上の \(n\) 次元ベクトル空間、 \(f\)\(V\) の線型変換とし、 \(f\) の固有値を \(\alpha_1, \alpha_2, \cdots, \alpha_n\) とする。

そのとき、\(f\)\(V\) の適当な基底によって、三角行列

\[\begin{split} \left[\begin{array}{llll} \alpha_1 & & * & \\ & \alpha_2 & & \\ & & \ddots & \\ & & & \alpha_n \end{array}\right] \end{split}\]

で表現される。

フロベニウスの定理#

フロベニウスの定理 (Frobenius theorem)

フロベニウスの定理

\(f(x)=a_m x^m+a_{m-1} x^{m-1}+\cdots+a_0\) を多項式とする。 \(n\) 次正方行列 \(A\) の固有値を \(\lambda_1, \lambda_2, \ldots, \lambda_n\) とするとき,正方行列

\[ f(A)=a_m A^m+a_{m-1} A^{m-1}+\cdots+a_0 I_n \]

の固有値は \(f\left(\lambda_1\right), f\left(\lambda_2\right), \ldots, f\left(\lambda_n\right)\) である。

ケイリー・ハミルトンの定理#

ケイリー・ハミルトンの定理

\(A\)の固有多項式を\(\phi_A(t)\)とするとき

\[ \phi_A(A) = O \]

になる

ケイリー・ハミルトンの定理 - Wikipedia

例:

2次正方行列

\[\begin{split} A=\left(\begin{array}{ll} a & b \\ c & d \end{array}\right) \end{split}\]

の場合、固有多項式は

\[\begin{split} \begin{align} \phi_A(\lambda) &= \det(A - \lambda I) = \det\left(\begin{array}{cc} a - \lambda & b \\ c & d - \lambda \end{array}\right)\\ &= (a - \lambda) (d - \lambda) - bc\\ &= ad - a \lambda - d \lambda + \lambda^2 - bc\\ &= \lambda^2 - (a + d) \lambda + (ad - bc)\\ \end{align} \end{split}\]

なので

\[ \phi_A(A) = A^2-(a+d) A+(a d-b c) I = O \]

という形になる。 実際に計算してみると

\[\begin{split} \begin{align} &A^2-(a+d) A+(a d-b c) I \\ &= \begin{pmatrix} a & b \\ c & d \end{pmatrix} \begin{pmatrix} a & b \\ c & d \end{pmatrix} - a \begin{pmatrix} a & b \\ c & d \end{pmatrix} - d \begin{pmatrix} a & b \\ c & d \end{pmatrix} +(a d-b c) I \\ &= \begin{pmatrix} a^2 + bc & ab + bd\\ ac + cd & bc + d^2 \end{pmatrix} - \begin{pmatrix} a^2 & ab \\ ac & ad \end{pmatrix} - \begin{pmatrix} ad & bd \\ cd & d^2 \end{pmatrix} +(a d-b c) I \\ &= \begin{pmatrix} bc & bd\\ cd & bc + d^2 - ad \end{pmatrix} - \begin{pmatrix} ad & bd \\ cd & d^2 \end{pmatrix} +(a d-b c) I \\ &= \begin{pmatrix} bc - ad & 0\\ 0 & bc - ad \end{pmatrix} +(a d-b c) I \\ &= \begin{pmatrix} 0 & 0\\ 0 & 0 \end{pmatrix} \end{align} \end{split}\]

となる。

ケイリー・ハミルトンの定理は何の役に立つのか

\(n\)乗を計算するときに計算量を抑えられる

例えばケイリー・ハミルトンの定理から\(A^3 - A + 2I = O\)がわかっている状況で\(A^7\)を求めたいとする。

\(A^3 = A - 2I\)だから、3乗をくくりだせば

\[\begin{split} \begin{align} A^7 &= A^3 A^3 A\\ &= (A - 2I) (A - 2I) A\\ &= (A^2 - 4A + 4I)A\\ &= A^3 - 4A^2 + 4A\\ &= (A - 2I) - 4A^2 + 4A\\ &= - 4A^2 + 5A - 2I\\ \end{align} \end{split}\]

となり、行列積の計算としては\(A^2\)だけを計算すれば済む。

固有値は写像の行列表現のとりかた(基底のとりかた)に依らず一定#

定義:相似

\(n\) 次正方行列 \(A, B\) に対して、

\[ B=P^{-1} A P \]

となる正則行列 \(P\) が存在するとき、 \(A\)\(B\)相似 であるという。

定理

\(n\) 次正方行列 \(A, B\) が相似であれば、両者の固有多項式は一致する、すなわち

\[ \varphi_A(t)=\varphi_B(t) \]

である。したがって、 \(A\)\(B\) の固有値全体は重複もこめて一致する。

証明
\[ \varphi_B(t)=|B-t E|=\left|P^{-1} A P-t E\right| \]

\(t E\) は任意の行列と可換であるから

\[\begin{split} \begin{aligned} & =\left|P^{-1} A P-P^{-1} t E P\right|=\left|P^{-1}(A-t E) P\right|=\left|P^{-1}\right||A-t E||P| \\ & =|P|^{-1}|A-t E||P|=|A-t E|=\varphi_A(t) \end{aligned} \end{split}\]

定理

線形変換 \(f: V \rightarrow V\) が与えられたとき、 \(V\) の 1 つの基底をとり、 その基底に関して \(f\) を行列表示したものを \(A\) とする。

そのとき、行列 \(A\) の固有多項式 \(\varphi_A(t)\) は基底の取り方によらない。

証明

線形変換を行列表示するとき、基底の取り換えは相似の関係になるから、前出の定理よりそれらの行列の固有多項式は一致する。

具体例(うまくいかなかった

線形写像\(f: \mathbb{R}^2 \to \mathbb{R}^2\)が存在し、

\[\begin{split} f(\boldsymbol{v}) = \begin{pmatrix} 1 & 2\\ 2 & 1 \end{pmatrix} \boldsymbol{v} \end{split}\]

であるとする。

\(\mathbb{R}^2\)の標準基底

\[\begin{split} \boldsymbol{v}_1 = \begin{pmatrix} 1 \\ 0\end{pmatrix},\ \boldsymbol{v}_2 = \begin{pmatrix} 0 \\ 1\end{pmatrix} \end{split}\]

を使って\(W\)へ写したものは

\[\begin{split} ( f(\boldsymbol{v}_1), f(\boldsymbol{v}_2)) = \begin{pmatrix} 1 & 2\\ 2 & 1 \end{pmatrix} \end{split}\]

となる。

これらに対し、\(W\)の基底

\[\begin{split} \boldsymbol{w}_1 = \begin{pmatrix} 1 \\ 1\end{pmatrix},\ \boldsymbol{w}_2 = \begin{pmatrix} 1 \\ -1\end{pmatrix} \end{split}\]

を使って

\[ ( f(\boldsymbol{v}_1), f(\boldsymbol{v}_2)) = ( \boldsymbol{w}_1, \boldsymbol{w}_2 ) A \]

と写すような行列\(A\)

\[\begin{split} ( \boldsymbol{w}_1, \boldsymbol{w}_2 )^{-1}= \begin{pmatrix} \frac{1}{2} & \frac{1}{2}\\ \frac{1}{2} & -\frac{1}{2} \end{pmatrix} \end{split}\]

を左から両辺にかけて

\[ ( \boldsymbol{w}_1, \boldsymbol{w}_2 )^{-1} ( f(\boldsymbol{v}_1), f(\boldsymbol{v}_2)) = ( \boldsymbol{w}_1, \boldsymbol{w}_2 )^{-1} ( \boldsymbol{w}_1, \boldsymbol{w}_2 ) A \]
\[\begin{split} \begin{pmatrix} \frac{1}{2} & \frac{1}{2}\\ \frac{1}{2} & -\frac{1}{2} \end{pmatrix} \begin{pmatrix} 1 & 2\\ 2 & 1 \end{pmatrix} = \begin{pmatrix} \frac{3}{2} & \frac{3}{2}\\ -\frac{1}{2} & \frac{1}{2} \end{pmatrix} = A \end{split}\]
import numpy as np

V = np.array([
    [1, 2],
    [2, 1],
])

W = np.array([
    [1, 1],
    [1, -1],
])

A = np.linalg.inv(W) @ V

lambdas, vectors = np.linalg.eig(A)
print(f"""
λ={lambdas}
x1={vectors[:, 0].round(3)}
x1'={(vectors[:, 0].round(3) * -np.sqrt(2)).round(1)}
x2={vectors[:, 1].round(3)}
x2'={(vectors[:, 1].round(3) * -np.sqrt(5)).round(1)}
""")
λ=[1.+0.70710678j 1.-0.70710678j]
x1=[ 0.866+0.j    -0.289+0.408j]
x1'=[-1.2+0.j   0.4-0.6j]
x2=[ 0.866-0.j    -0.289-0.408j]
x2'=[-1.9+0.j   0.6+0.9j]
import numpy as np

A = np.array([
    [1, 2],
    [2, 1],
])

lambdas, vectors = np.linalg.eig(A)
print(f"""
λ={lambdas}
x1={vectors[:, 0].round(3)}
x1'={(vectors[:, 0].round(3) * -np.sqrt(2)).round(1)}
x2={vectors[:, 1].round(3)}
x2'={(vectors[:, 1].round(3) * -np.sqrt(5)).round(1)}
""")
λ=[ 3. -1.]
x1=[0.707 0.707]
x1'=[-1. -1.]
x2=[-0.707  0.707]
x2'=[ 1.6 -1.6]