next up previous contents
Next: eigvec Up: リファレンスマニュアル Previous: do

  
eig

【目的】
eig - 固有値分解
【形式】
{D,X} = eig(A)       {D,X} = eig(A,B)
   CoMatrix D,X;        CoMatrix D,X;
   Matrix A;            Matrix A,B;
【説明】
{D,X} = eig(A)は,正方行列 A の固有値を対角成分とする対角行列 D と,対応する固有ベクトルを列とする行列 X を返す。そして,A X = X D が成り立つ。固有ベクトルは個々のノルムが 1.0 にスケーリングされる。 固有値は,実部の降順に並べられる。 {D,X} = eig(A,B)は,正方行列 A と B の一般化された固有値を対角成分 とする対角行列 D と,対応する固有ベクトルを列とする行列 X を返す。 そして,A X = B X D が成り立つ。固有ベクトルは個々のノルムが 1.0 にスケーリングされる。固有値は,実部の降順に並べられる。
【算法】
関数 eig(A) は,Eispackのルーチンの balanc, balbak, ortran, orthes, hqr2 を使う。balanc と blabak は引数の行列をバランス化 する。orthes は直行相似変換で実行列をヘッセンベルグ型に変換する。 hqr2 は QR 法で実数のヘッセンベルグ行列の固有値,固有ベクトルを 求める。 関数 eig(A,B) は,Eispackルーチンの qzhes, qzit, qzval, qzvec を使う。
【注意】
繰り返し計算で固有値が求まらない場合は,次のメッセージが表示される。

Solution will not converge

【例題】
>> {D,X} = eig([[1 2][3 4]])
>> print D,X;
=== [D] : (  2,  2) ===
       [ (  1)-Real  (  1)-Imag ]  [ (  2)-Real  (  2)-Imag ]
(  1)  5.372281E+00  0.000000E+00  0.000000E+00  0.000000E+00
(  2)  0.000000E+00  0.000000E+00 -3.722813E-01  0.000000E+00
=== [X] : (  2,  2) ===
       [ (  1)-Real  (  1)-Imag ]  [ (  2)-Real  (  2)-Imag ]
(  1) -4.222291E-01  0.000000E+00 -8.245648E-01  0.000000E+00
(  2) -9.230523E-01  0.000000E+00  5.657674E-01  0.000000E+00
【参照】
eigval(2.54), eigvec(2.55)


Masanobu KOGA 平成11年10月2日