Processing math: 100%

数値解析 第14回 (4) 累乗法に関する注意

複素数が必要な場合

 複素行列、あるいは実行列でも固有値が複素数の場合の注意です。
Rem.11 累乗法・デフレーションで 複素数が必要な場合 は次の2点を修正します:
  1. 標準内積の定義には複素共役が必要で
    \dps(\xxx,\yyy)=ni=1¯xiyi
    となります。
  2. Alg.6 のループの終了条件は
    ( \vvv ≒ 旧\vvv ) or ( \vvv\vvv )
    では駄目で、
    \vvv ≒ ( 旧\vvv の或るスカラー倍 )
    あるいは
    成分比 \dps(vivi) がほぼ一定
    とします。これは、複素ベクトルは「複素数倍しても同じ方向だと考える」からです。

絶対値の等しい固有値がある場合の工夫

 例えば回転の行列など、 実行列が複素数の固有値 λ を持つときは、 その複素共役 ¯λ も固有値になり、
|¯λ|=|λ|
ゆえ、Th.9 の条件 () が満たされません。 しかし、次の工夫により「累乗法&デフレーション」作戦が使えるようになります。
工夫 
  1. 複素乱数 α を取る。
  2. B=A+αE とおく。
  3. B に「累乗法&デフレーション」を適用して、B の固有値・固有ベクトル
    (μj,\wwwj)  ( j=1,2,,n )
    を求める。
  4. λj=μjα とおく。
  5. \vvvj=\wwwj とおく。
 実際、 A\vvvj=(BαE)\wwwj=B\wwwjα\wwwj=μj\wwwjα\wwwj=(μjα)\wwwj=λj\vvvj ゆえ (λj,\vvvj)A の固有値・固有ベクトルになります。 そして α が乱数なので、高い確率で μj=λj+α たちの絶対値は全て異なります。