」の観測データの無相関化の節を読んでいて、行列の対角化ってなんだっけ?という、そもそものところでつまづいたので(※1)、行列の対角化について、ここで少し整理しようと思う。今回は純粋に線形代数学の話題に終始して、本来のデータの無相関化については、また後日書く予定。■対角化を理解するまでの道筋すこし長くなるので、「行列の対角化とは何か?」を理解するための道筋を整理すると固有値と固有ベクトルの意味を理解する。固有ベクトルを並べた変換行列の性質を理解する。対角化操作を理解する。いうわけでこの道筋に従って話しを進めようと思う。ここでは話しの分かりやすさを優先するので、数学的な一般性(※2)はひとまずおいておいて、わかりやすいシチュエーションの話だけをしていきたいと思います。一般的な状況でのより詳しいことはここ(PDF)を参照すると良いです。(上記、1、2の話題について、非常にわかりやすく整理&説明されています。)■固有値と固有ベクトルの意味を理解する。▼固有値と固有ベクトルの定義まずは、固有値、固有ベクトルを定義をしておくと以下のとおり。固有ベクトルという.n次の正方行列にはn個の固有値とそれに対応した固有ベクトルを持つ(※3)。上記の定義だけだといまいちなので、これらが図形的に何を意味しているのかを少し説明しておく。\)を作用させるということは、ベクトルを線形変換しそのベクトルの「方向」と「長さ」を変更する操作にあたる。14)^T\)(下図:赤)になる。行列を作用させることによって方向と長さが変更されたことがもわかる。今回は2次元行列を考えているので、2次元の\(\mathbb{R}^2\)空間でのベクトルは(2つ特別なベクトルを除いて)どんなベクトルも上の例と同じように方向が変更される。その2つの特殊なベクトルが固有ベクトルであるわけだ。\)を作用させても、元のベクトルの定数倍(固有値倍)にしかならない。「方向が変更されない」のである。実際の例を見てみよう。-1)^T\)である(※4)。\)を作用させると\((5,10)^T=5(1,2)^T\)であり元のベクトルの固有値(定数)倍で方向は変わらないのである。\)作用前、赤が作用後のベクトルとなっている。図示するまでもないけれど、方向に変化がないことがわかる。\mathbf{u}_2\)であり、それぞれの固有ベクトル方向に固有値倍ずつ伸縮結果に他ならない。\mathbf{u}_n)\)を考える。\mathbf{u}_i\)と固有ベクトルに変換されることがわかる。先述の具体的な行列を例に見ていく。(\mathbf{u}_1,\mathbf{u}_2)\)を考える。\mathbf{u}_2\)となり、基底を固有空間に移す行列になっていることがわかる。)\)での表現から、行列Aの固有ベクトルの固有空間の表現に変換される。\(\lambda_i\)倍になるだけ。\lambda_n\end{array}\right)\]となり、\(P^{-1}AP\)が対角化行列となるわけである。(追伸)ここで使った図はpython&matplotlibを使って描いた。そのソースはここを参照のこと。(※1)昔は、嫌というほど線形代数学を勉強したのに、情けない話だ・・・(※2)固有値が重解になる場合はどうなんだ、とかそんな話。n個よりも少ない固有値しかないようにみえることもあるが・・・。回転行列は実数の固有値はないが、複素数まで考えるとちゃんと固有値を持つ。(※4)求め方はやはりここ(PDF)が参考になる。(※5)つまり、2つの固有ベクトルが2次元\(\mathbb{R}^2\)空間の基底であるということ。(3)行列の対角化とは何か?rpy2をインストールする。