Gerschgorin の定理

Complex Plane

$t=$

$M(t)=D+tA=$, $\lambda(t)=$

$M=$

解説

Gerschgorin の定理とは,複素行列の固有値の存在範囲をその行列の成分から与える定理です.

$M=(m_{i, j})$ を $n$ 次の複素行列とし, \[ R_i=\sum_{k \ne i} |m_{i, k}|,\quad i=1, 2, \dots, n, \] とする.$M$ の対角成分 $m_{i, i}$ を中心とする半径 $R_i$ の複素平面上の円板を $D_i=\{\, z \in \mathbb C: |z-m_{i, i}|\le R_i \,\}$ と置くと,(i) $M$ の全ての固有値 $\lambda$ は $\cup_{i=1}^n D_i$ に含まれる.さらに,(ii) もしある $k$ 個の円板の合併による領域が他の $n-k$ 個のどの円板とも交わらないならば,その領域内には $k$ 個の固有値が含まれる.

このプログラムでは,実際に4次の実行列の場合に円板(黄色)と固有値()の位置を描画します.特に定理の (ii) の証明で用いられる連続変形を実際に行うことで,(ii) の主張が正しいことを目で見て理解することができます.

Gerschgorin の定理の証明は例えば Wikipedia を見ていただければよいのですが,(ii) の成立についてはこのプログラムを使えば一目瞭然でしょう.$M$ の対角部分 $D=\mathop{\mathrm{diag}}(m_{1, 1}, m_{2, 2}, \dots, m_{n, n})$ と非対角部分 $A=M-D$ を考えます.そして,$M(t)=D+tA$, $t \in [0, 1]$, という行列関数を作ると,$M(0)=D$,$M(1)=M$ が成り立ちます.$t$ を0から1へと連続的に動かしていくと,円の中心 $m_{i, i}$ は固定されたままで円の半径 $R_i(t)$ が連続的に単調増加し,$M(t)$ の固有値 $\lambda_i(t)$ も連続的に変化するので,$M(0)=D$ の固有値がその対角成分(つまり円の中心)であることに注意すると,(i) の主張から (ii) の成立がわかります.

このプログラムでは,以上で述べた $t$ を0から1まで動かすという操作を実際に行うことができます.行列 $M$ は4次の実行列に限られますが自分で入力することもできますので,色々な値を入力して遊んでみて下さい(ただし,現状では描画領域も限られます).

なお,入力が実行列なので,その固有値は実でなければ必ず共役な複素数の組となります.したがって,(ii) より奇数個の円からなる合併で他の円と交わらない領域中には必ず実固有値が1つ存在することがわかります.$t$ を動かしていって固有値が元にいた円から出る瞬間,共役な複素固有値が現れる瞬間の様子を観察することで楽しんでいただけると思います.

使用ライブラリ

ソースコード