行列の対角化とは?

POINT

  • 対角化の操作は,基底の変換(座標変換)に相当する.
  • 行列の対角化の公式を「行列表示」の考え方で簡単に導く.

対角行列

定義

対角行列
$n\times n$行列$A$の$(i,j)$成分を$a_{ij}$と書きます.$i\neq j$なら$a_{ij}=0$となるとき,$A$を「対角行列」と呼びます.
つまり,対角行列$A$は次の形になります.
\begin{aligned}
A=\begin{pmatrix}
a_{11} & 0 & \cdots & 0 \\
0 & a_{22} & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & a_{nn}
\end{pmatrix}
\end{aligned}

性質

対角行列$A$の$k$乗は
\begin{aligned}
A^{k}
=\begin{pmatrix}
(a_{11})^{k} & 0 & \cdots & 0 \\
0 & (a_{22})^{k} & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & (a_{nn})^{k}
\end{pmatrix}
\end{aligned}
と計算できるため,とても使いやすい行列です.

対角化

対角化とは?

行列の対角化
行列$A$の対角化とは,適当な行列$P$を用いて
\begin{aligned}
B=P^{-1} A P
\end{aligned}
を対角行列にする操作です.

但し,どんな行列でも対角化が可能なわけではありません.

なぜ必要?

対角化をしたい理由はいくつかあります.

まず,もとの行列$A$の$k$乗が簡単に計算できることです.行列$A$が

\begin{aligned}
B&=P^{-1} A P \\
&=\begin{pmatrix}
\lambda_{1} & 0 & \cdots & 0 \\
0 & \lambda_{2}& \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & \lambda_{n}
\end{pmatrix}
\end{aligned}
と対角化できたとしましょう.このとき,上で見たように
\begin{aligned}
B^{k}
&=\begin{pmatrix}
(\lambda_{1})^{k} & 0 & \cdots & 0 \\
0 & (\lambda_{2})^{k} & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & (\lambda_{n})^{k}
\end{pmatrix}
\end{aligned}
でした.一方で,$B=P^{-1} A P$から
\begin{aligned}
B^{k}
&=\overbrace{(P^{-1} A P) (P^{-1} A P) (P^{-1} A P) \cdots (P^{-1} A P)}^{k} \\
&=P^{-1} A (PP^{-1}) A (PP^{-1}) \cdots (PP^{-1}) A P \\
&=P^{-1} A^{k} P
\end{aligned}
です.これら2つの表式を組み合わせれば
\begin{aligned}
A^{k}
&=P
\begin{pmatrix}
(\lambda_{1})^{k} & 0 & \cdots & 0 \\
0 & (\lambda_{2})^{k} & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & (\lambda_{n})^{k}
\end{pmatrix} P^{-1}
\end{aligned}
と,$A^{k}$の表式を求めることができます.

$P^{-1}AP$の意味は?

対角化の際の$P^{-1}AP$の形は,どこからくるのでしょうか?

これは,対角化が「ベクトルの基底の変換(座標変換)」を行っていることに由来します.つまり,

ベクトルを$\boldsymbol{v}\mapsto \boldsymbol{v}^{\prime}=P^{-1}\boldsymbol{v}$と座標変換するとき,行列$A$は
\begin{aligned}
A \mapsto A^{\prime} = P^{-1} A P
\end{aligned}
に変換される.
と言えます.

まず,『行列$A$は,「ベクトル$\boldsymbol{x}$」を「ベクトル$\boldsymbol{y}=A\boldsymbol{x}$」に写す写像である』ことを思い出しましょう.

ここで,全てのベクトル$\boldsymbol{v}$を$\boldsymbol{v}^{\prime}=P^{-1}\boldsymbol{v}$に写すような座標変換を行ったとき,行列$A$がどう変換されるかを考えます(【注】$P$ではなく$P^{-1}$を使う理由は最後に触れます).

行列$A$を座標変換して得られた行列$A^{\prime}$は,$\boldsymbol{x}^{\prime}=P^{-1}\boldsymbol{x}$を$\boldsymbol{y}^{\prime}=P^{-1}\boldsymbol{y}$に写すので

関係式
座標変換前 $\boldsymbol{y}=A\boldsymbol{x}$
座標変換後
\begin{aligned}& \boldsymbol{y}^{\prime}=A^{\prime}\boldsymbol{x}^{\prime} \\ &\Leftrightarrow (P^{-1}\boldsymbol{y})=A^{\prime}(P^{-1}\boldsymbol{x})\end{aligned}
が成り立つことになります.

表中の2つの関係式から

\begin{aligned}
P^{-1}A\boldsymbol{x}
=A^{\prime} P^{-1}\boldsymbol{x}
\end{aligned}
が任意の$\boldsymbol{x}$について成り立つので,$P^{-1}A=A^{\prime} P^{-1}$,すなわち
\begin{aligned}
A^{\prime}=P^{-1}AP
\end{aligned}
が得られます.

以上から,対角化は「ベクトルの基底の変換(座標変換)によって,行列を変換する操作」であることがわかりました.

【注】$P$ではなく$P^{-1}$を使う理由:
基底の変換を$P$で定めると,ベクトルは$P^{-1}$で変換されることになるためです.例えば,座標回転で座標軸(基底)を$\theta$回転させると,ベクトルは$-\theta$回転することになることをイメージしてください(参考:座標軸の回転と変換則 - Notes_JP).

詳しく言うと,基底$\{\boldsymbol{e}_{1},...,\boldsymbol{e}_{n}\}$から基底$\{\boldsymbol{e}^{\prime}_{1},...,\boldsymbol{e}^{\prime}_{n}\}$への変換を$P=(p_{ij})$を用いて

\begin{aligned}
\boldsymbol{e}^{\prime}_{i}
&=\sum_{j=1}^{n} p_{ji} \boldsymbol{e}_{j}
\end{aligned}
とすると,ベクトル
\begin{aligned}
\boldsymbol{v}
=\sum_{i=1}^{n}v_{i} \boldsymbol{e}_{i}
=\sum_{i=1}^{n}v^{\prime}_{i} \boldsymbol{e}^{\prime}_{i}
\end{aligned}
の成分を縦に並べたベクトル$\begin{pmatrix}v_{1}\\ \vdots \\ v_{n} \end{pmatrix}, \begin{pmatrix}v^{\prime}_{1}\\ \vdots \\ v^{\prime}_{n} \end{pmatrix}$に対して
\begin{aligned}
\begin{pmatrix}
v^{\prime}_{1}\\
\vdots \\
v^{\prime}_{n}
\end{pmatrix}
=P^{-1}
\begin{pmatrix}
v_{1}\\
\vdots \\
v_{n}
\end{pmatrix}
\end{aligned}
が成り立ちます.これは,
\begin{aligned}
\boldsymbol{v}
&=\sum_{i=1}^{n}v_{i} \boldsymbol{e}_{i} \\
\boldsymbol{v}
&=\sum_{i=1}^{n}v^{\prime}_{i}
\underset
{\substack{|| \\ \\ \!\!\!\! \mathrlap{\sum_{j=1}^{n} p_{ji} \boldsymbol{e}_{j}}}}
{\boldsymbol{e}^{\prime}_{i}}
= \sum_{j=1}^{n} \biggl(\sum_{i=1}^{n} p_{ji}v^{\prime}_{i}\biggr) \boldsymbol{e}_{j}
\end{aligned}
から簡単にわかります.また,参考文献[1] 命題2.3.7に対応する内容があります.

行列表示によるアプローチ

行列表示を学ぶと,対角化が「基底を取り直す」操作であることが理解できます.

対角化とは,

  1. 行列$\hat{M}$の基底を上手く取り直し
  2. 上手くとった基底で$\hat{M}$を行列表示し直す(これを以下$M$で表す)ことにより,
  3. 対角行列にしてしまおう!

という操作である,と言えます.

それでは,「基底を上手く取り直す」とは具体的にどういうことなのか,以下で詳しく見てみましょう(「$\hat{}$」の付け方を行列表示の記事と対応をさせました.混乱した時は2つの記事を比較してみて下さい).

対角行列であるための条件

1. 基底が単位ベクトル$\{e_1,...,e_n\}$の場合
「行列$M$」と「$i$成分が1の単位ベクトル$e_i$」の間には
\begin{aligned}
M=(Me_1,...,Me_n)
\end{aligned}
という関係があります(参考:回転行列の表式と導出(2次元・3次元) - Notes_JP).従って,$M$が対角行列
\begin{aligned}
M=
\begin{pmatrix}
\lambda_1 &0 & \cdots & 0\\
0 &\lambda_2&\cdots& 0 \\
\vdots & \ddots & \ddots & \\
0 & \cdots& 0 & \lambda_n
\end{pmatrix}
\tag{1}
% \label{eq:diag_M}
\end{aligned}
である必要十分条件は
\begin{aligned}
M e_i=\lambda_i e_i
\tag{2}
% \label{eq:diag}
\end{aligned}
となることです.

2. 基底がベクトル$\{x_1,...,x_n\}$の場合
一方で,$\hat{M}$の基底$\{x_1,...,x_n\}$に関する行列表示とは,$x_i$を$e_i$だと思ったときに$\hat{M}$を行列として表したものでした.よって「$\hat{M}$の行列表示$M$が式(1)での対角行列となる」必要十分条件は,式(2)で$e_i\rightarrow x_i$とすればよく,

\begin{aligned}
\hat{M} x_i=\lambda_i x_i
\tag{3}
% \label{eq:diag2}
\end{aligned}
となります.


従って,式(3)が『$\{x_1,...,x_n\}$が上手い(対角化できる)基底であるための条件式』というわけです.これは正に,対角行列を求める際に現れる式ですね.

対角行列の求め方

「もとの行列$\hat{M}$と対角行列$M$の関係」がわかれば,対角行列の求め方がわかったことになります.

$e_i\rightarrow x_i$で定められる行列を$P$で表しましょう.つまり,

\begin{aligned}
Pe_i=x_i
\end{aligned}
とします.この行列$P$を用いれば,式(3)は
\begin{aligned}
P^{-1}\hat{M} P e_i
&=\lambda_i e_i \\
&=Me_i
\end{aligned}
となります.

ここまでの結果をまとめましょう:

対角行列の求め方
行列$\hat{M}$を対角化した行列を$M$とするとき,次の関係式が成り立つ:
\begin{aligned}
P^{-1}\hat{M} P
=
\begin{pmatrix}
\lambda_1 &0 & \cdots & 0\\
0 &\lambda_2&\cdots& 0 \\
\vdots & \ddots & \ddots & \\
0 & \cdots& 0 & \lambda_n
\end{pmatrix}
=M
\end{aligned}
ここで,$\{x_1,...,x_n \}$は
\begin{aligned}
\hat{M} x_i=\lambda_i x_i
\end{aligned}
を満たす基底で,$P=(x_1,...,x_n)$である.

これはまさに,対角行列を求めるおなじみの式です.

参考文献