Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

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

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

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

P1AP=(λ1λ2λn)P^{-1} A P= \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix}

となる。ここで、Ax1=λ1x1, Ax2=λ2x2, , Axn=λnxnA \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 である。

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 =
Loading...
# (λ1 x1, λ2 x2)
sp.Matrix([values[0] * vectors[0], values[1] * vectors[1]]).reshape(*A.shape).T
Loading...
# P @ (λを対角要素にもつ行列)
P @ sp.diag(*values)
Loading...
P.inv() @ A @ P
Loading...

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

対角化に関する定理

dropbox - Unknown Directive
仮定より、

$$
A \boldsymbol{x}_i
= \lambda_i \boldsymbol{x}_i
\quad (\boldsymbol{x}_i \neq \boldsymbol{0})
$$

である。この両辺の列ベクトルを第$i$列とする行列を考えると、次の等式を得る


$$
\begin{aligned}
A \begin{pmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 & \cdots & \boldsymbol{x}_n \end{pmatrix}
&= \begin{pmatrix} A \boldsymbol{x}_1 & A \boldsymbol{x}_2 & \cdots & A \boldsymbol{x}_n \end{pmatrix}\\
&= \begin{pmatrix} \lambda_1 \boldsymbol{x}_1 & \lambda_2 \boldsymbol{x}_2 & \cdots & \lambda_n \boldsymbol{x}_n \end{pmatrix}\\
&= \begin{pmatrix} \boldsymbol{x}_1 & \boldsymbol{x}_2 & \cdots & \boldsymbol{x}_n \end{pmatrix}
\begin{pmatrix}
\lambda_1 & & O \\
& \ddots & \\
O & & \lambda_n
\end{pmatrix}
\end{aligned}
$$


したがって

$$
AQ
= Q
\begin{pmatrix}
\lambda_1 & & O \\
& \ddots & \\
O & & \lambda_n
\end{pmatrix}
$$

となる。

逆に、各列ベクトルが零ベクトルでない$n$次正方行列$Q$と$\nu_i \ (i=1,\cdots,n)$で、各列の等式

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

を満たすとする。行列$Q$の列を

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

と表すと、等式の第$i$列を取り出すと

$$
A \boldsymbol{x}_i
= \nu_i \boldsymbol{x}_i
$$

となる。

仮定より$\boldsymbol{x}_i \neq \boldsymbol{0}$であるから、$\nu_i$は固有値で、$\boldsymbol{x}_i$は固有値$\nu_i$に属する固有ベクトルである。

対角化可能の判定

dropbox - Unknown Directive
いま$r < s$をみたす$r$が存在するとし、$\boldsymbol{x}_1,\cdots,\boldsymbol{x}_r$は1次独立で、$\boldsymbol{x}_1,\cdots,\boldsymbol{x}_r,\boldsymbol{x}_{r+1}$は1次従属になったとして矛盾を導く。

このとき、$c_1, \cdots, c_r \in \mathbb{R}$に対し

$$
\boldsymbol{x}_{r+1} = c_1 \boldsymbol{x}_1 + \cdots + c_r \boldsymbol{x}_r
\tag{1}
$$

と一意的に表すことができる。

$\boldsymbol{x}_{r+1} \neq \boldsymbol{0}$であるから、$c_i$の中に少なくとも1つは$0$でないものがある。

各$\boldsymbol{x}_i$を列ベクトルで表し、両辺に左から$A$をかければ

$$
A \boldsymbol{x}_{r+1}=c_1 A \boldsymbol{x}_1+\cdots+c_r A \boldsymbol{x}_r
$$

となる。各 $x_i$ が固有値 $\lambda_i$ に属する固有ベクトルであるから、

$$
\lambda_{r+1} \boldsymbol{x}_{r+1}=c_1 \lambda_1 \boldsymbol{x}_1+\cdots+c_r \lambda_r \boldsymbol{x}_r
\tag{2}
$$

となる。また、 $\lambda_{r+1}$ を式(1)の両辺にかけて

$$
\lambda_{r+1} x_{r+1}=c_1 \lambda_{r+1} x_1+\cdots+c_r \lambda_{r+1} x_r
\tag{3}
$$

式(2), (3)を引けば

$$
c_1\left(\lambda_1-\lambda_{r+1}\right) x_1+\cdots+c_r\left(\lambda_r-\lambda_{r+1}\right) x_r=\mathbf{0}
$$

(相異なる固有値という)仮定より、$1 \leqq i \leqq r$ をみたす各 $i$ で

$$
\lambda_i-\lambda_{r+1} \neq 0
$$

であり、ある $j$ で $c_j \neq 0$ であるから、上式は自明でない 1 次関係式である。
これは $x_1, \cdots, x_r$ が 1 次独立であるという仮定に反する。


(出所:川久保勝夫. (2010). 線形代数学.)
dropbox - Unknown Directive
$s$に関する数学的帰納法で示す。$s=1$のときは明らかであるから、$s\geq 2$とし、$x_1, \cdots, x_{s-1}$は1次独立であると仮定する。

$c_i$をスカラーとして

$$
c_1 x_1 + \cdots + c_{s-1} x_{s-1} + c_s x_s = 0
\tag{1}
$$

とする。両辺の$F$による像を考えれば、$F(x_i) = \lambda_i x_i$であるから

$$
c_1 \lambda_1 x_1 + \cdots + c_{s-1} \lambda_{s-1} x_{s-1} + c_s \lambda_s x_s = 0
\tag{2}
$$

式(1)を$\lambda_s$倍すれば

$$
c_1 \lambda_s x_1 + \cdots + c_{s-1} \lambda_s x_{s-1} + c_s \lambda_s x_s = 0
$$

上の2式を辺々引き算すれば

$$
c_1 (\lambda_1 - \lambda_s) x_1 + \cdots
+ c_{s-1} (\lambda_{s-1} - \lambda_s) x_{s-1} = 0
$$

これから帰納法の仮定によって$c_i (\lambda_i - \lambda_s) x_i = 0 \ (i = 1, \cdots, s-1)$が得られ、$\lambda_i \neq \lambda_s$であるから$c_i = 0 \ ( i=1,\cdots,s-1)$が得られる。

したがって$(1)$から$c_s=0$も得られる。

(出所:松坂和夫. (2018). 線型代数入門.)
dropbox - Unknown Directive
定理より、$F$の相異なる固有値に属する固有ベクトルは1次独立である。

また前出の別の定理により、$F$の固有ベクトルが$V$の基底となるとき、$F$は対角化可能である。
dropbox - Unknown Directive
定理より、$A$の相異なる固有値$\lambda_1, \cdots, \lambda_n$に属する固有ベクトルを$\boldsymbol{x}_1,\cdots,\boldsymbol{x}_n$とすると、$\boldsymbol{x}_1,\cdots,\boldsymbol{x}_n$は1次独立であり、したがって$\mathbb{R}$の基底となる。

$\boldsymbol{x}_i$を第$i$列とする正方行列を$P$とする、すなわち$P=(\boldsymbol{x}_1,\cdots,\boldsymbol{x}_n)$とする。

定理により、

$$
AP = P
\left(\begin{array}{lll}
\lambda_1 & & O \\
& \ddots & \\
O & & \lambda_n
\end{array}\right)
$$

であり、$P$は定理(「1次独立なベクトルからなる行列の行列式はゼロでない」という定理)により正則行列であるため、$AP$に左から$P^{-1}$を左からかけて

$$
P^{-1}AP =
\left(\begin{array}{lll}
\lambda_1 & & O \\
& \ddots & \\
O & & \lambda_n
\end{array}\right)
$$

を得る。

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

A=(1101)A = \begin{pmatrix} 1 & 1\\ 0 & 1 \end{pmatrix}

は、三角行列なので

det(AλI)=det(1λ101λ)=(1λ)2\det(A - \lambda I) = \det \begin{pmatrix} 1-\lambda & 1\\ 0 & 1-\lambda \end{pmatrix} = (1-\lambda)^2

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

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

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

対角化の条件

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

(1)     \implies (2) の 証明

仮定よりAAは対角化可能のため、

P1AP=(α1OOαn)P^{-1} A P =\left(\begin{array}{lll} \alpha_1 & & O \\ & \ddots & \\ O & & \alpha_n \end{array}\right)

とできる。αi\alpha_iP1APP^{-1} A Pの固有値であり、AAの固有値でもある。

したがって、仮にλ1\lambda_1の重複度k1k_1が2であれば、

P1AP=(λ1Oλ1Oλn)P^{-1} A P =\left(\begin{array}{lll} \lambda_1 & & & O \\ & \lambda_1 & \\ & & \ddots & \\ O & & & \lambda_n \end{array}\right)

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

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

AP=P(λ1Oλ1Oλn)A P = P \left(\begin{array}{lll} \lambda_1 & & & O \\ & \lambda_1 & \\ & & \ddots & \\ O & & & \lambda_n \end{array}\right)

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

よって、

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

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

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

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

ki=dimV(λi)(i=1,,s)k_i=\operatorname{dim} V\left(\lambda_i\right) \quad(i=1, \cdots, s)

が成り立つ。

(2)     \implies (3) の 証明

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

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

が得られる

(3)     \implies (4) の 証明

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

仮定より、

i=1sri=n\sum_{i=1}^s r_i=n

である。このとき、nn 個のベクトル

w1(1),wr1(1),,w1(s),,wrs(s)w_1^{(1)}, \cdots w_{r_1}{ }^{(1)}, \cdots, w_1^{(s)}, \cdots, w_{r_s}^{(s)}

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

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

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

とおくと、

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

である。

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

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

に矛盾する. よって

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

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

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

は1次独立である。

よってnn個の1次独立なAAの固有ベクトルの存在が示された。

(4)     \implies (1) の 証明

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

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

AP=P(λ1OOλn)A P=P\left(\begin{array}{lll} \lambda_1 & & O \\ & \ddots & \\ O & & \lambda_n \end{array}\right)

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

P1AP=(λ1OOλn)P^{-1} A P=\left(\begin{array}{lll} \lambda_1 & & O \\ & \ddots & \\ O & & \lambda_n \end{array}\right)

となり、 AA は対角化可能である。

三角化

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

また、nn次正方行列PPPPT=EP P^T = Eを満たすとき、PP直交行列という。

証明の概略

AAの次数nnに関する帰納法で証明する。

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

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

AP1=A(x1xn)=(Ax1Axn)=(λ1x1λnxn)=P1(λ1λn)=P1(λ10A10)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)

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

P11AP1=(λ10A10)P_1^{-1} A P_1 = \left(\begin{array}{c|ccc} \lambda_1 & & * & \\ \hline 0 & & &\\ \vdots & & A_1 & \\ 0 & & & \end{array}\right)

となる。AAP11AP1P_1^{-1} A P_1の固有値の全体は一致するから、A1A_1の固有値の全体はλ2,,λn\lambda_2,\cdots, \lambda_nとなる。

A1A_1は適当なn1n-1次正則行列P2P_2によって三角化される

P21A1P2=(λ2Oλn)P_2^{-1} A_1 P_2 =\left(\begin{array}{lll} \lambda_2 & & * \\ & \ddots & \\ O & & \lambda_n \end{array}\right)

なお、

P=P1(1000P20)P = P_1 \left(\begin{array}{c|ccc} 1 & 0 & \cdots & 0\\ \hline 0 & & &\\ \vdots & & P_2 & \\ 0 & & & \end{array}\right)

とおくと、

P1AP=(1000P20)1P11AP1(1000P20)=(1000P20)1(λ10A10)(1000P20)=(λ10P21A1P20)=(λ1λ2Oλn)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)

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