行列の対角化とは、ある行列の固有値を成分とした対角行列を作ることを意味します。
これはシンプルですが強力なツールであり、経済学から統計学、工学、物理学に到る様々な分野で、主に漸化式や微分方程式を効率よく解くために使われています。
そこで、このページでは、行列の対角化の方法を見ながら、対角化とは何かということを具体的に解説します。その後に行列の対角化の最も一般的な使い方である、行列のべき乗の簡単な求め方を解説します。
そして最後に、理解を深めるために役立つ練習問題を用意しています。
ぜひ、行列の対角化に対する理解を深めるために役立てて頂ければ幸いです。それでは始めましょう。
1. 対角行列とは
行列の対角化とは文字通り、行列を対角行列に変換することです。それでは対角行列とは何なのでしょうか。先にこの点について理解しておきましょう。
前回の記事『固有値と固有ベクトルとは何か?幾何学的意味と計算方法の解説』では、固有値と固有ベクトルについて解説しました。ここでは固有ベクトルが基底ベクトルであるような行列について考えてみましょう。
固有ベクトルとは、その行列で線形変換をしても向きが変わらないベクトルです。そして固有値はその際の倍数です。例えば、以下の線形変換をする行列は、基底ベクトル \(\hat{\imath}\) が固有値−1の固有ベクトルで、 \(\hat{\jmath}\) が固有値2の固有ベクトルです。
上のアニメーションで示していますが、このように基底ベクトルが部分空間から外れず空間を伸縮させるだけの行列は、対角線以外の成分が0になります。そのため、このような行列を「対角行列」と言います。
つまり対角行列とは、基底ベクトルが固有ベクトルであり、対角線上の値がそれぞれの基底ベクトルの固有値である行列なのです。

ポイント
対角行列とは、対角線上の成分が各基底ベクトル(=固有ベクトル)の固有値であり、対角線上以外の成分が0の行列のこと。
2. 対角行列の意義
さて、それでは対角行列にはどのような意義があるのでしょうか。結論からお伝えすると、これを使うと行列のべき乗の計算がとても楽になります。「それだけ?」と思われるかもしれませんが、冒頭でもお伝えした通り、これは経済学から統計学、工学、物理学などさまざまな分野で使われている重要な技術なのです。
この点について理解するために、まずは対角行列以外の場合を考えてみましょう。
例えば以下の行列 \(A\) があるとします。
\[\begin{eqnarray}
A=\left[\begin{array}{cc} 3 & 0 \\ 1 & 2 \end{array} \right]
\end{eqnarray}\]
この行列の100乗を求めよ、と言われたら、以下のように行列の積を100回も行わなければならず、とてもできるものではありません。
\[\begin{eqnarray}
A^{100}=
\underbrace{
\left[\begin{array}{cc} 3 & 0 \\ 1 & 2 \end{array} \right]
\left[\begin{array}{cc} 3 & 0 \\ 1 & 2 \end{array} \right]
\cdots
\left[\begin{array}{cc} 3 & 0 \\ 1 & 2 \end{array} \right]
}_{100回}
\end{eqnarray}\]
しかし対角行列では、この計算をはるかに簡単に行うことができます。たとえば、以下の対角行列 \(D\) があるとします。
\[\begin{eqnarray}
D=\left[\begin{array}{cc} 3 & 0 \\ 0 & 2 \end{array} \right]
\end{eqnarray}\]
この場合、べき乗の計算は次のようになります。
\[\begin{eqnarray}
D^2=\left[\begin{array}{cc} 3^2 & 0 \\ 0 & 2^2 \end{array} \right]
,\hspace{3mm}
D^3=\left[\begin{array}{cc} 3^3 & 0 \\ 0 & 2^3 \end{array} \right]
,\hspace{3mm}
D^{100}=\left[\begin{array}{cc} 3^{100} & 0 \\ 0 & 2^{100} \end{array} \right]
\end{eqnarray}\]
このように対角行列ではない行列のべき乗の計算は大変ですが、対角行列ではとても簡単にできるのです。
それでは、対角行列ではない行列 \(A\) を、対角行列に変換できるとしたらどうでしょうか。とても有り難いですね。そして、それを可能にする方法が「行列の対角化」です。
そこで、まずは行列の対角化の方法について解説してから、この計算方法を見ていくことにしましょう。
ポイント
「行列の対角化」とは、任意の行列を、便利な性質をもつ対角行列に変換すること。
3. 行列の対角化の方法
それでは行列の対角化方法を見ていきましょう。ここでは以下の3つを解説します。
- 行列の対角化の公式
- この公式の解説
- 対角化不可能な行列について
早速見ていきましょう。
3.1. 行列の対角化の公式
さて、それでは上で用いた行列 \(A=\left[\begin{array}{cc} 3 & 0 \\ 1 & 2 \end{array} \right]\) を対角化するには、どうすれば良いでしょうか。
結論からお伝えすると、以下の公式で対角化することができます。
行列の対角化の方法
\[\begin{eqnarray}
P^{-1}AP=D
\end{eqnarray}\]
\(P\) は行列 \(A\) の固有ベクトルを列ベクトルにした行列のことです。
行列 \(A\) の固有ベクトルは、\(\left[\begin{array}{c} 1 \\ 0 \end{array} \right]\) と \(\left[\begin{array}{c} -1 \\ 1 \end{array} \right]\) です。そのため、\(P=\left[\begin{array}{cc} 1 & -1 \\ 0 & 1 \end{array} \right]\) です。なお、どちらの列にどちらのベクトルを入れても構いません。
また、固有ベクトルの求め方を復習したい場合は、『固有値と固有ベクトルとは何か?幾何学的意味と計算方法の解説』をご覧ください。
さて、この \(P\) を用いて、 \(A\) の対角化行列は次のように求められます。
\[\begin{eqnarray}
P^{-1}AP
=
\left[\begin{array}{cc} 1 & 1 \\ 0 & 1 \end{array} \right]
\left[\begin{array}{cc} 3 & 1 \\ 0 & 2 \end{array} \right]
\left[\begin{array}{cc} 1 & -1 \\ 0 & 1 \end{array} \right]
=
\left[\begin{array}{cc} 3 & 0 \\ 0 & 2 \end{array} \right]
\end{eqnarray}\]
3.2. 理由の解説
それでは、なぜこの方法で行列を対角化することができるのでしょうか。
繰り返しになりますが、対角行列とは固有ベクトルが基底ベクトルであり、対角線の成分が固有値(基底ベクトルの倍率)であるような行列です。
ということは、まずは行列 \(A\) の固有ベクトルが基底ベクトルになるように基底変換を行えば良いのです。
実際に \(P^{-1}AP\) の最初の行列 \(P\) は、基底ベクトルを行列 \(A\) の固有ベクトルに基底変換(=基底ベクトルの変更)することを意味しています。つまり、基底ベクトルを \(\left[\begin{array}{c} 1 \\ 0 \end{array} \right]\) と \(\left[\begin{array}{c} 0 \\ 1 \end{array} \right]\) のペアから、\(\left[\begin{array}{c} 1 \\ 0 \end{array} \right]\) と \(\left[\begin{array}{c} -1 \\ 1 \end{array} \right]\) のペア(=固有基底)に変えるということです。
以下のアニメーションは、この基底変換(基底変換行列による線形変換)までを示したものです。
これで基底ベクトルが、\(\left[\begin{array}{c} 1 \\ 0 \end{array} \right]\) と \(\left[\begin{array}{c} -1 \\ 1 \end{array} \right]\) のペアになりました。
次に \(A\) による線形変換は、\(P\) によって基底変換をした新しい座標系における線形変換を行うものです。これらの積 \(AP\) は、元々の基底ベクトルのペアの座標系における同じ線形変換を表しています。
つまり、\(P\) によって基底変換をした新しい座標系における行列 \(A\) は、元々の座標系における行列 \(AP\) と等しいということです。
\[\begin{eqnarray}
\overbrace{
A=\left[\begin{array}{cc} 3 & 1 \\ 0 & 2 \end{array} \right]
}^{新しい座標系における変換行列}
\hspace{3mm}
\Longleftrightarrow
\hspace{3mm}
\overbrace{
AP =\left[\begin{array}{cc} 3 & 0 \\ 0 & 2 \end{array} \right]
}^{元々の座標系において左と同じ変換をする変換行列}
\end{eqnarray}\]
ここまでを以下のアニメーションで示しています。
さて、このアニメーションを見て気づくことがあります。
行列 \(P\) で行った基底変換は、行列 \(A\) の固有ベクトルを基底ベクトルに変換するものだったので、新しい座標系で \(A\) による線形変換を行うと、新しい基底ベクトルのペアは向きが変わらずに、伸縮するだけなのです。つまり、\(A\) は新しい座標系における伸縮行列であり、\(A\) の列ベクトルは、それぞれの基底ベクトルの倍率を表す固有値であることを意味しているということです。
そうであれば、いつもの見慣れた座標系では、伸縮行列=対角行列なので、この \(A\) を元々の座標系に基底変換すれば、対角行列が現れることになります。その方法はわかりますね。最初に行列 \(P\)で基底変換したので、元の座標系に戻すには、その逆行列 \(P^{-1}\) であらためて基底変換をすれば良いのです。
すると、以下のアニメーションで示している通り、基底ベクトル \(\hat{\imath}\) と \(\hat{\jmath}\) の倍率が対角線上に配置された伸縮行列が出来上がります。
対角行列とは、何だったかをもう一度思い出してみましょう。それは、「基底ベクトルが固有ベクトルであり、対角線上の値がそれぞれの基底ベクトルの固有値である行列」でしたね。ということは、こうして出来上がった伸縮行列こそが、行列 \(A\) を対角化した行列なのです。
以上が、\(P^{-1}AP\) で行列を対角化することができる理由です。
3.3. 対角化不可能な行列
なお、すべての行列で対角化が可能なわけではありません。上の理由解説からわかるように、ある \(n\) 次正方行列があったとして、その行列に \(n\) 本の独立した固有ベクトルがなければ対角化することはできません。
なぜなら、そうでなければ固有ベクトルを列ベクトルとした行列 \(P\) を作ったときに、その逆行列 \(P^{-1}\) を求めることができないからです。つまり、行列 \(P\) が正則行列である必要があるのです(正則行列については『正則行列とは何かがアニメーションで驚くほどよくわかる解説』で解説しています)。
もちろん、『固有値と固有ベクトルとは何か?幾何学的意味と計算方法の解説』で解説しているように、剪断行列などの固有ベクトルが \(n\) 本に満たない行列も、そもそも \(P\) を作ることができないので対角化不可能です。
なお、あくまでも行列 \(P\) が正則でなければいけないのであって、行列 \(A\) ではありませんのでご注意ください。実際、\(A\) 自体は非正則行列でも構いません。その場合は、以下のように対角線上の成分に0がある行列になります。
\[\begin{eqnarray}
A=\left[\begin{array}{cc} 1 & 2 \\ 2 & 4 \end{array} \right]
,\hspace{3mm}
P^{-1}AP
=
\left[\begin{array}{cc} -0.4 & 0.2 \\ 0.2 & 0.4 \end{array} \right]
\left[\begin{array}{cc} 1 & 2 \\ 2 & 4 \end{array} \right]
\left[\begin{array}{cc} -2 & 1 \\ 1 & 2 \end{array} \right]
=
\left[\begin{array}{cc} 0 & 0 \\ 0 & 5 \end{array} \right]
\end{eqnarray}\]
ポイント
\(n\) 次の正方行列 \(A\) に \(n\) 本の独立した固有ベクトルが存在しない場合は、その行列 \(A\) を対角化することはできない。なぜなら、その場合は行列 \(P\) が非正則になるか、そもそも正方行列 \(P\) を作ることができなくなるから。
4. 行列のべき乗計算
さて、それでは「2. 対角行列の意義」のところで残しておいた、行列 \(A\) のべき乗計算を、この行列の対角化を使って求めてみましょう。
これは次のように求めることができます。
\[\begin{eqnarray}
A^{n}=PD^{n}P^{-1}
\end{eqnarray}\]
簡単に解説すると \(D=P^{-1}AP\) であり、この式における \(P\) と \(P^{-1}\) は固有基底に変換するための行列に過ぎないので、\(D^n=P^{-1}A^nP\) となることは少し考えればわかると思います。
そして以下のように、この式の両辺の左側に \(P\) 右側に \(P^{-1}\) を掛けると上の公式が導き出されます。
\[\begin{eqnarray}
& & PD^nP^{-1}=PP^{-1}A^nPP^{-1} \\
&\rightarrow& PD^nP^{-1}=A^n
\end{eqnarray}\]
例えば、ここまで用いてきた \(A=\left[\begin{array}{cc} 3 & 1 \\ 0 & 2 \end{array} \right]\) の100乗を求める場合は、次の計算だけで求めることができます。
\[\begin{eqnarray}
A^{100}
&=&
PD^{100}P^{-1}\\
&=&
\left[\begin{array}{cc} 1 & -1 \\ 0 & 1 \end{array} \right]
\left[\begin{array}{cc} 3^{100} & 0 \\ 0 & 2^{100} \end{array} \right]
\left[\begin{array}{cc} 1 & 1 \\ 0 & 1 \end{array} \right]
\end{eqnarray}\]
はるかに簡単になりましたね。
対角行列の応用例
ここでは上で解説した「行列のべき乗が遥かに楽になる」という対角化行列の特性を活用した応用例を見てみましょう。ここは少し難しいかもしれないので、必ずしも理解できなくても大丈夫です。行列の対角化は、こういう風に使われているんだということを知っていただければ十分です。
5. 練習問題
ここでは最後に行列の対角化についての理解を深めるために、練習問題を用意しておきます。ぜひ一度は解いてみてください。
6. まとめ
最後に重要なポイントをまとめておきましょう。
まず行列の対角化は次のようにして行うことができます。
- 行列の固有値と固有ベクトルを求める。
- 固有ベクトルを重ねた行列 \(P\) を作る。
- 上で重ねた固有ベクトルに対応する固有値を、順番通りに対角上に配置した対角行列を作る。
行列の対角化の公式は次の通りです。
行列の対角化の公式
\[P^{−1}AP = D\]
続いて、対角化行列を用いて、行列のべき乗を簡単に計算する方法は以下の通りです。
行列のべき乗の公式
\[A^n = PD^nP^{−1}\]
練習問題を解くことが、これらの理解の助けになりますので、ぜひチャレンジしておいて頂ければと思います。
コメントを残す