固有ベクトルによる対角化#

\(A\in M_n(\mathbb{R})\)\(\mathbb{R}\)において対角化可能であるとき、\(A\)を対角化する行列\(P\)、すなわち、\(P^{-1}AP\)が対角行列となるような正則行列\(P\)は、固有ベクトルによって求められる。

\(A\)の(\(\mathbb{R}\)における)\(n\)個の1次独立な固有ベクトルを\(\boldsymbol{x}_1, \cdots \boldsymbol{x}_n\)とし、それらを列ベクトルとする行列を\(P=(\boldsymbol{x}_1, \cdots \boldsymbol{x}_n)\)とすれば、

\[\begin{split} P^{-1} A P= \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \end{split}\]

となる。ここで、\(A \boldsymbol{x}_1 = \lambda_1 \boldsymbol{x}_1, \ A \boldsymbol{x}_2 = \lambda_2 \boldsymbol{x}_2,\ \cdots ,\ A \boldsymbol{x}_n = \lambda_n \boldsymbol{x}_n\) である。

Tip

\[\begin{split} AP = A \begin{pmatrix} \boldsymbol{x}_1 & \cdots & \boldsymbol{x}_n \end{pmatrix} = \begin{pmatrix} A \boldsymbol{x}_1 & \cdots & A \boldsymbol{x}_n \end{pmatrix} = \begin{pmatrix} \lambda_1 \boldsymbol{x}_1 & \cdots & \lambda_n \boldsymbol{x}_n \end{pmatrix} = P \begin{pmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{pmatrix} \end{split}\]

となるため、

\[\begin{split} P^{-1} A P = P^{-1} P \begin{pmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{pmatrix} = \begin{pmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{pmatrix} \end{split}\]

#

import sympy as sp
A = sp.Matrix([
    [1, 3],
    [2, 2]
])
values = []
vectors = []
for e in A.eigenvects():
    values.append(e[0])
    vectors.append(e[2][0])
print(f"λ =", values)

# 固有ベクトルを列ベクトルとして作った行列
P = sp.Matrix(vectors).reshape(*A.shape)
print("P =")
P
λ = [-1, 4]
P =
\[\begin{split}\displaystyle \left[\begin{matrix}- \frac{3}{2} & 1\\1 & 1\end{matrix}\right]\end{split}\]
# (λ1 x1, λ2 x2)
sp.Matrix([values[0] * vectors[0], values[1] * vectors[1]]).reshape(*A.shape).T
\[\begin{split}\displaystyle \left[\begin{matrix}\frac{3}{2} & 4\\-1 & 4\end{matrix}\right]\end{split}\]
# P @ (λを対角要素にもつ行列)
P @ sp.diag(*values)
\[\begin{split}\displaystyle \left[\begin{matrix}\frac{3}{2} & 4\\-1 & 4\end{matrix}\right]\end{split}\]
P.inv() @ A @ P
\[\begin{split}\displaystyle \left[\begin{matrix}-1 & 0\\0 & 4\end{matrix}\right]\end{split}\]

なぜ固有ベクトルで対角化できるのかについては、いくつかの定理が関わる。

対角化に関する定理#

定理

\(A\)\(n\) 次正方行列、 \(\lambda_1, \cdots, \lambda_n\)\(A\) の固有値, \(x_1, \cdots, x_n\) をそれぞれに属する固有べクトルとする。(ここで \(\lambda_i\) は異なるとは仮定しない。)

\[ Q=(\boldsymbol{x}_1, \cdots, \boldsymbol{x}_n) \]

とすると、

\[\begin{split} A Q=Q\left(\begin{array}{lll} \lambda_1 & & O \\ & \ddots & \\ O & & \lambda_n \end{array}\right) \end{split}\]

が成り立つ。

逆に、\(n\) 次正方行列 \(Q\)\(\nu_i(i=1, \cdots, n)\) が存在して

\[\begin{split} A Q=Q\left(\begin{array}{lll} \nu_1 & & O \\ & \ddots & \\ O & & \nu_n \end{array}\right) \end{split}\]

をみたし、 \(Q\) の各列ベクトルがゼロベクトルでないとすると、 \(\nu_i\)\(A\) の固有値で、 \(Q\) の第 \(i\) 列は固有値 \(\nu_i\) に属する固有ベクトルである。

対角化可能の判定#

定理(相異なる固有値に属する固有ベクトルは1次独立)

\(V\) をベクトル空間、 \(F\)\(V\) の線型変換とする。(ここでは \(V\) は 有限次元とは仮定しない。) \(\lambda_1, \lambda_2, \cdots, \lambda_s\)\(F\) の相異なる固有値とすれば、それらに属する固有ベクトル \(\boldsymbol{x}_1, \boldsymbol{x}_2, \cdots, \boldsymbol{x}_s\) は 1 次独立である。

定理(相異なる固有値に属する固有ベクトル ⇒ 対角化可能)

\(V\)\(n\) 次元ベクトル空間で、その線型変換 \(F\)\(n\) 個の 相異なる固有値 \(\lambda_1, \lambda_2, \cdots, \lambda_n\) をもつとする。

そのとき、それらに属する固有ベクトル \(v_1, v_2, \cdots, v_n\)\(V\) の基底をなし、したがって \(F\) は対角化可能である。

定理(相異なる固有値に属する固有ベクトル ⇒ 対角化可能)

\(n\)次正方行列\(A\)が相異なる\(n\)個の固有値\(\lambda_1, \lambda_2, \cdots, \lambda_n\) をもつならば、\(A\)はこれらを対角成分にもつ対角行列に対角化可能である。

すなわち、ある正則行列\(P\)があって、

\[\begin{split} P^{-1} A P=\left(\begin{array}{lll} \lambda_1 & & O \\ & \ddots & \\ O & & \lambda_n \end{array}\right) \end{split}\]

となる。

固有値の重複度(重解)と固有空間の次元数#

定理

\(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である。

定理

\(A\in M_n(\mathbb{R})\)の相異なる固有値を\(\lambda_1,\cdots,\lambda_s\)とし、\(\lambda_i\)に属する固有空間を\(V(\lambda_i)\)とすると、

\[ \sum^s_{i=1} \dim V(\lambda_i) \leq n \]

が成り立つ

対角化の条件#

対角化可能であることと同値の条件がいくつかある(参考:川久保 2010)

定理

\(n\)次正方行列\(A\)について、次の4条件は同値である

(1) \(A\)は対角化可能である

(2) \(A\) の固有方程式は重複もこめて \(n\) 個の解をもち、かつ各固有値の重複度はその固有値に属する固有空間の次元に一致する。

すなわち、\(A\) の異なる固有値を \(\lambda_1, \cdots, \lambda_s\) とし、\(\lambda_i\) の重複度を \(k_i\)\(\lambda_i\) に属する固有空間を \(V(\lambda_i)\) とするとき、

\[ \sum_{i=1}^s k_i = n \quad \text{ かつ } \quad k_i = \operatorname{dim} V(\lambda_i) \quad(i=1, \cdots, s) \]

が成り立つ。

(3) \(A\) の各固有値に属する固有空間の次元の和は \(n\) になる。 すなわち \(A\) の異なる固有値を \(\lambda_1, \cdots, \lambda_s\) とし、 \(\lambda_i\) に属する固有空間を \(V\left(\lambda_i\right)\) とするとき、

\[ \sum_{i=1}^s \operatorname{dim} V\left(\lambda_i\right)=n \]

が成り立つ。

(4) \(n\) 個の 1 次独立な \(A\) の固有ベクトルが存在する。

(1) \(\implies\) (2) の 証明

仮定より\(A\)は対角化可能のため、

\[\begin{split} P^{-1} A P =\left(\begin{array}{lll} \alpha_1 & & O \\ & \ddots & \\ O & & \alpha_n \end{array}\right) \end{split}\]

とできる。\(\alpha_i\)\(P^{-1} A P\)の固有値であり、\(A\)の固有値でもある。

したがって、仮に\(\lambda_1\)の重複度\(k_1\)が2であれば、

\[\begin{split} P^{-1} A P =\left(\begin{array}{lll} \lambda_1 & & & O \\ & \lambda_1 & \\ & & \ddots & \\ O & & & \lambda_n \end{array}\right) \end{split}\]

のようになっており、重複度の総和は\(n\)に等しい、すなわち\(\sum_{i=1}^s k_i = n\)である。

また上の行列の等式の両辺に左からPを掛けると

\[\begin{split} A P = P \left(\begin{array}{lll} \lambda_1 & & & O \\ & \lambda_1 & \\ & & \ddots & \\ O & & & \lambda_n \end{array}\right) \end{split}\]

仮定より\(P\)は正則であるから、\(P\)の列ベクトルは1次独立である。したがってそれらは固有値\(\lambda_i\)に属する固有ベクトルである。

よって、

\[ k_i \leqq \operatorname{dim} V\left(\lambda_i\right) \quad(i=1, \cdots, s) \]

が成り立つ。一方、定理より一般に

\[ k_i \geqq \operatorname{dim} V\left(\lambda_i\right) \quad(i=1, \cdots, s) \]

が成り立つから、結局等号

\[ k_i=\operatorname{dim} V\left(\lambda_i\right) \quad(i=1, \cdots, s) \]

が成り立つ。

(2) \(\implies\) (3) の 証明

条件2の2番目の等式を1番目の等式に代入すれば

\[ \sum_{i=1}^s \operatorname{dim} V\left(\lambda_i\right)=n \]

が得られる

(3) \(\implies\) (4) の 証明

\(r_i=\operatorname{dim} V\left(\lambda_i\right)\) とおき、 固有空間\(V\left(\lambda_i\right)\) の 1つの基底 \(\boldsymbol{w}_1{ }^{(i)}, \cdots, \boldsymbol{w}_{r_i}{ }^{(i)}\) をとる。

仮定より、

\[ \sum_{i=1}^s r_i=n \]

である。このとき、\(n\) 個のベクトル

\[ w_1^{(1)}, \cdots w_{r_1}{ }^{(1)}, \cdots, w_1^{(s)}, \cdots, w_{r_s}^{(s)} \]

が1次独立であることを示す。

いま 1 次関係式 \(\sum_{i=1}^s \sum_{j=1}^{r_i} c_{i j} \boldsymbol{w}_j^{(i)}=\mathbf{0}\) があるとする。 ここで

\[ \boldsymbol{v}^{(i)}=\sum_{j=1}^{r_i} c_{i j} \boldsymbol{w}_j^{(i)} \]

とおくと、

\[ \boldsymbol{v}^{(i)} \in V\left(\lambda_i\right) \quad \boldsymbol{v}^{(1)}+\cdots+\boldsymbol{v}^{(s)}=\mathbf{0} \]

である。

ベクトル \(\boldsymbol{v}^{(1)}, \cdots, \boldsymbol{v}^{(s)}\) のうち、ゼロベクトルでないのがあるとすると、それらを集めたものは定理(相異なる固有値の固有ベクトルは1次独立)より1次独立である。これは

\[ \boldsymbol{v}^{(1)}+\cdots+\boldsymbol{v}^{(s)}=\mathbf{0} \]

に矛盾する. よって

\[ \boldsymbol{v}^{(i)}=\sum_{j=1}^{r_i} c_{i j} \boldsymbol{w}_j{ }^{(i)}=0 \]

が,任意の \(i=1, \cdots, s\) に対して成り立つ. ところが \(\boldsymbol{w}_1{ }^{(i)}, \cdots, \boldsymbol{w}_{r_i}{ }^{(i)}\) は 1 次独立であるから, \(c_{i j}=0\left(i=1, \cdots, s, j=1, \cdots, r_i\right)\) が成り立つ. すなわち,

\[ \boldsymbol{w}_j^{(i)}, i=1, \cdots, s, j=1, \cdots, r_i \]

は1次独立である。

よって\(n\)個の1次独立な\(A\)の固有ベクトルの存在が示された。

(4) \(\implies\) (1) の 証明

\(A \boldsymbol{x}_i = \lambda \boldsymbol{x} \ (i = 1,\cdots, n)\) かつ、\(\boldsymbol{x}_1, \cdots, \boldsymbol{x}_n\)が1次独立とする。

\(\boldsymbol{x}_1, \cdots, \boldsymbol{x}_n\)を列ベクトルにもつ\(n\)次正方行列を\(P=(\boldsymbol{x}_1, \cdots, \boldsymbol{x}_n)\)とすると、定理より

\[\begin{split} A P=P\left(\begin{array}{lll} \lambda_1 & & O \\ & \ddots & \\ O & & \lambda_n \end{array}\right) \end{split}\]

となる。\(P\)は(\(\boldsymbol{x}_1, \cdots, \boldsymbol{x}_n\)が1次独立のため、行列式についての定理より)正則のため

\[\begin{split} P^{-1} A P=\left(\begin{array}{lll} \lambda_1 & & O \\ & \ddots & \\ O & & \lambda_n \end{array}\right) \end{split}\]

となり、 \(A\) は対角化可能である。

三角化#

\(n\)次正方行列\(A\)が与えられたとき、\(P^{-1} A P\)が三角行列になるような正方行列\(P\)を求めることを、行列\(A\)三角化 という。またそのような\(P\)が存在するとき、\(A\)三角化可能 という。

また、\(n\)次正方行列\(P\)\(P P^T = E\)を満たすとき、\(P\)直交行列という。

定理

\(n\) 次正方行列 \(A\) が, 重複もふくめて \(n\) 個の固有値 \(\lambda_1, \cdots, \lambda_n\) をもつとき(すなわち, \(\varphi_A(t)=\left(\lambda_1-t\right) \cdots\left(\lambda_n-t\right)\) となるとき), \(A\) は適当な正則行列 \(P\) によって次の形に三角化される。

\[\begin{split} P^{-1} A P=\left(\begin{array}{lll} \lambda_1 & & & * \\ & \lambda_2 & \\ & & \ddots & \\ O & & & \lambda_n \end{array}\right) \end{split}\]

\(P\) として直交行列をとることもできる。

証明の概略

\(A\)の次数\(n\)に関する帰納法で証明する。

\(n=1\)のとき、定理は明らかに成り立つ。

\(n\geq 2\)のとき、\(n-1\)次以下の正方行列について定理が成り立つと仮定する。 \(\lambda_1\)\(A\)の固有値の1つとし、\(x_1\)\(\lambda_1\)に属する固有ベクトルとする。\(n-1\)個のベクトル\(x_2,\cdots,x_n\)を選んで、\(x_1,x_2,\cdots,x_n\)\(\mathbb{R}^n\)の基底になるようにする。このとき、\(x_1,\cdots,x_n\)を列ベクトルにもつ行列\(P_1=(x_1,\cdots,x_n)\)は正則行列で、

\[\begin{split} AP_1 = A \begin{pmatrix} \boldsymbol{x}_1 & \cdots & \boldsymbol{x}_n \end{pmatrix}\\ = \begin{pmatrix} A \boldsymbol{x}_1 & \cdots & A \boldsymbol{x}_n \end{pmatrix}\\ = \begin{pmatrix} \lambda_1 \boldsymbol{x}_1 & \cdots & \lambda_n \boldsymbol{x}_n \end{pmatrix}\\ = P_1 \begin{pmatrix} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{pmatrix} = P_1\left(\begin{array}{c|ccc} \lambda_1 & & * & \\ \hline 0 & & &\\ \vdots & & A_1 & \\ 0 & & & \end{array}\right) \end{split}\]

の形に書くことができる。ここで\(A_1\)\(n-1\)次正方行列である。したがって

\[\begin{split} P_1^{-1} A P_1 = \left(\begin{array}{c|ccc} \lambda_1 & & * & \\ \hline 0 & & &\\ \vdots & & A_1 & \\ 0 & & & \end{array}\right) \end{split}\]

となる。\(A\)\(P_1^{-1} A P_1\)の固有値の全体は一致するから、\(A_1\)の固有値の全体は\(\lambda_2,\cdots, \lambda_n\)となる。

\(A_1\)は適当な\(n-1\)次正則行列\(P_2\)によって三角化される

\[\begin{split} P_2^{-1} A_1 P_2 =\left(\begin{array}{lll} \lambda_2 & & * \\ & \ddots & \\ O & & \lambda_n \end{array}\right) \end{split}\]

なお、

\[\begin{split} P = P_1 \left(\begin{array}{c|ccc} 1 & 0 & \cdots & 0\\ \hline 0 & & &\\ \vdots & & P_2 & \\ 0 & & & \end{array}\right) \end{split}\]

とおくと、

\[\begin{split} P^{-1} A P = \left(\begin{array}{c|ccc} 1 & 0 & \cdots & 0\\ \hline 0 & & &\\ \vdots & & P_2 & \\ 0 & & & \end{array}\right)^{-1} P_1^{-1} A P_1 \left(\begin{array}{c|ccc} 1 & 0 & \cdots & 0\\ \hline 0 & & &\\ \vdots & & P_2 & \\ 0 & & & \end{array}\right) \\ = \left(\begin{array}{c|ccc} 1 & 0 & \cdots & 0\\ \hline 0 & & &\\ \vdots & & P_2 & \\ 0 & & & \end{array}\right)^{-1} \left(\begin{array}{c|ccc} \lambda_1 & & * & \\ \hline 0 & & &\\ \vdots & & A_1 & \\ 0 & & & \end{array}\right) \left(\begin{array}{c|ccc} 1 & 0 & \cdots & 0\\ \hline 0 & & &\\ \vdots & & P_2 & \\ 0 & & & \end{array}\right) \\ = \left(\begin{array}{c|c} \lambda_1 & *\\ \hline 0 & \\ \vdots & P_2^{-1} A_1 P_2\\ 0 & \end{array}\right) \\ = \left(\begin{array}{cccc} \lambda_1 & & *\\ & \lambda_2 & \\ & & \ddots & \\ O & & & \lambda_n \end{array}\right) \end{split}\]

となる。固有ベクトル\(x_1,\cdots,x_n\)を標準的な内積に関して正規直交基底となるように選ぶことで\(P_1\)は直交行列にとれる。\(P_2\)も帰納法の仮定により直交行列にとれるから、結局\(P\)として直交行列がとれる。