|
3.7.9 固有値と固有ベクトル

固有値と固有ベクトル
が行列 の固有値であるとは,0以外のベクトル で となるものが存在するときをいう. を固有ベクトルと呼ぶ.
行列の「特性多項式」CharacteristicPolynomial[m, x]はDet[m - x IdentityMatrix[n]]で与えられる.固有値はこの多項式の根である.
の行列の固有値を見付けるということは,一般に 次の代数方程式を解くことを意味する. の場合,解をベキ根を使って代数的に記述することは一般に不可能である. Rootオブジェクトを使い解を構築することは可能ではあるが,ある程度疎な行列か単純な行列でないと,構築した解が複雑になりすぎて扱えなくなってしまう.
この例のような単純な行列でさえ,固有値の取る形は極めて複雑である.
In[1]:= Eigenvalues[ {{a, b}, {-b, 2a}} ]
Out[1]= 
Mathematicaに近似実数を成分とする行列を与えると,近似値による固有値と固有ベクトルが算出さ れる.
の行列を例にする.
In[2]:= m = {{2.3, 4.5}, {6.7, -1.2}}
Out[2]= 
この行列はともに実数からなる固有値を2つ持つ.
In[3]:= Eigenvalues[ m ]
Out[3]= 
mの固有ベクトルが2つ求まる.
In[4]:= Eigenvectors[ m ]
Out[4]= 
Eigensystemを使うと固有値と固有ベクトルが同時に求まる.この割当ては valsに固有値を割り当て, vecsに固有ベクトルを割り当てる.
In[5]:= {vals, vecs} = Eigensystem[m]
Out[5]= 
第1組の固有値と固有ベクトルが適切な条件を満たしているか方程式を構成して確認する.
In[6]:= m . vecs[[1]] == vals[[1]] vecs[[1]]
Out[6]= 
乱数を成分とする 行列を構対称な行列では,固有値に虚数部が生じることがある.
In[7]:= Eigenvalues[ Table[Random[ ], {4}, {4}] ]
Out[7]= 
関数 Eigenvaluesを 行列に適用すると,固有値は 個求まる.値はリスト形式で返される.固有値は行列の特性多項式の持つ根に対応するが,すべての固有値が相異なる値として求まるとは限らない.一方, Eigenvectorsを適用すると,固有ベクトルが求まり,リスト形式で返される.求まる固有ベクトルは必ず互いに独立している.求まるベクトルの数が に満たないとき, Eigenvectorsの返すリストには,リスト長を に揃えるため必要数の0ベクトルが追加される.
の行列を構成する.
In[8]:= mz = {{0, 1, 0}, {0, 0, 1}, {0, 0, 0}}
Out[8]= 
0の固有値が3つ見付かる.
In[9]:= Eigenvalues[mz]
Out[9]= 
独立した固有ベクトルは1つしか見付からない.リスト長を3にするため,2つゼロベクトルが追加される.
In[10]:= Eigenvectors[mz]
Out[10]= 

最大固有値と最小固有値を求める
Eigenvaluesは数値的な固有値を絶対値の大きなものから順に並べる.行列の最大固有値あるいは最小固有値のみが知りたいことは多い.Eigenvalues[m, k]とEigenvalues[m, -k]を使うとこれが効率よく行える.
これは整数行列の厳密な固有値を計算する.
In[11]:= Eigenvalues[{{1, 2}, {3, 4}}]
Out[11]= 
固有値は大きいものから小さいものへと並べられる.
In[12]:= N[%]
Out[12]= 
これは絶対値が大きな方から3つ目までの固有値を与える.
In[13]:= Eigenvalues[Table[N[Tan[i/j]], {i, 10}, {j, 10}], 3]
Out[13]= 

一般化された固有値と固有ベクトル
行列 についての行列 の一般化された固有値は である によって定義される.
一般化された固有値は一般化された特性多項式Det[m - x a]のゼロに対応する.
通常の行列の固有値は常にはっきりした値を持つが,一般化された固有値の中には一般化された特性多項式が消失してしまうと常にIndeterminateになるものもある. と が零空間を共有しているとこのようなことが起る.一般化された固有値は無限にもなりうる.
この2つの行列は1次元の零空間を共有しているので,一般化された固有値の1つはIndeterminateである.
In[14]:= Eigenvalues[{{{1.5, 0}, {0, 0}}, {{2, 0}, {1, 0}}}]
Out[14]= 
|