2003/09/30 前回から、固有値の話 今週は、対称行列 来週は、非対称行列 # 一般に、対称行列の方が、非対称行列が難しい。 固有値問題も対称行列と非対称行列の二種るいがある。 対称行列 ヤコビ法 G法, H法 非対称行列 べき乗法 ... 問題はもちろん、対称行列の方が簡単な問題なのだが、 解法としては、べき乗法 ( つまり、非対称行列の方法 ) の方が簡単 # 条件が多い方が、問題を解くには、簡単だが、 # 解法は、その条件を考慮して作られるので、複雑になる。 == 固有値問題の形式 A x = \lambda x # 前期にやった方程式の解法は.. # A x = b # 右辺に、x が現れるかどうかの違いでしかない。 # # その違いがおおきいのだが... 方程式の解法では、A を書換えて、在る特別な形に 変換できたことを「解ける」と呼ぶ。 # この時に、「書き換え」が方程式の根を変えないことが本質 固有値問題に関しても、同様で、A を書換えて、対角化すればよい ポイントも同じく、その変換が固有値を変えない => 相似変換 ( ほぼ、座標回転とみなしてよい.. ) # ベクトルのエネルギーを変えない変換 # 図形的には、 # 二次元の対称固有値問題は、楕円で表現され、 # その長軸と単軸の長さが答 # => 回転して軸に合せれば、x, y 軸の長さになる # => ヤコビ法 ヤコビ法で、 一つの操作をすると、一つの要素をゼロとできる 次の操作で、戻ってしまう可能性がある。 しかし、戻っても絶対値は、小さくなる その要素のエネルギーが対角要素に移るので... 非対角要素の絶対値が十分に小くなれば Okey ヤコビ法では、反復回数を予想することはできない 行列によって、反復回数が異なる。 ヤコビ法の欠点 ( 連立方程式の解法に比較して.. ) 反復回数が確定しない 常に、行列全体を扱う必要がある。 なんとか ( 連立方程式の解法のように.. ) ならないか.. ? # ある工夫をすると.. 三重対角行列 ( 対称の場合、非対称の場合は上三角はゼロにならない.) までは、座標回転だけで確定的 ( 一定回数で.. ) に行うことができる => ギブンス法 ハウスホルダー ( 鏡像変換 ) 法 # 本質的には、同じ手法 ## 基本的に、操作の順を工夫しているだけ... ? これは、まだ、解けていないので、更に解く必要がある => 何が嬉しい ? 三重対角行列なら、その要素 ( 3n しかない.. ) だけを対象に計算すれば済む バイセクション法 # 固有値のは、ある代数方程式の根 # その固有値を二分法で求める。 QR 法 ( LR 法... ) # 固有値の参考文献 戸川隼人「行列計算」 この二つの解法は、実は、密行列でも適用可能だが 演算量が多い 三重対角行列程に要素数を減らさない、話にならない # 512M memory なら 6000 の行列が計算できる # full -> 三重対角 ( n^2 -> 3n ) # の書き換えによって 2000 ( 6000/3 ) 倍の効率 解法の違い ( 基本は、相似変換の繰り返し !! ) ヤコビ法 素直で扱いやすい ( 非対称の場合は、ヘッセンベルグ行列 ) 密行列 ----------------> 三重対角行列 ----------> 答 ギブンス 二分法 ハウスホルダー QR 法 組合せは自由 ( 2 x 2 = 4 ) 対称行列の場合、二分法の方が簡単 非対称行列の場合、QR法の方が簡単 # 組合せで作成することが Point !! # 非対称行列の場合 # 固有値と固有ベクトルが同じ組があると、三重対角にできない # => 同じ組の個数だけ四重対角、五重対角になる # # 伊理先生、かん先生 # 物理的な性質をもつ行列では、「保存則」が成立するので、 # # 固有値が互いに異り.. # かならず、三重対角化できる。 # # このような変な例は、「線型代数」を参照 ## 理論的には、全く 0 にできない場合もありそうだが.. 解らない ## 四重対角になる例は ( 数学的には.. ) 簡単に作れるが.. # 今回は、QR 法の詳細には入らない。 # LINPACK # ライブラリ ( EISPACK : アウスパック ) があるので、そこから入手 # => netlib site ( このような Library を収集している ) # => phase site ( 日本の mirror ) # by アルゴンス国立研究所 ( ジャック・ドンガル ) # 全体の流れと利用法を理解しておくことの方が大事 ## 世の中には、ひどいライブラリがあるので注意 !! ## LINPACK/EISPACK は Okey == 課題の提出 「ヤコビ法」09/30 日の日付で、提出は、10/13 日まで == 偏微分方程式の解法の為に .. Excel を利用するので、ちょっと、勉強しておいてください。 == 次回 べき乗法 # 行列をかけるだけ... == programming は、「作文」 自分の思っていることが、プログラムなっているとはかぎらない 生き残っているプログラミング言語.. ( Fortran/C ) ハードウエァにデペンド 分割コンパイルできる.. but.. モジュール間チェックができないことが問題