ここの説明は、文献 [
1]を参考にしました。これは、線形代数を
実際にどのように使うか述べられた教科書で、詳しく書かれている。線形代数を実際に使
う場合、一読することを進める。初めて私が線形代数の講義を受けたとき、あまりにも抽
象的で、さっぱりわからなかった。その後、この教科書を読むことにより、なるほど便利
なものであるとやっとわかったのである。
さて、いままで学習した直接法はしつこく計算すれば、必ず解が求まる。しかし、大きな
連立方程式を計算するには不向きである。なぜならば、ガウス・ジョルダン法の計算回数
は、方程式の元nの
に比例するため、大きな行列ではとたんに計算時間が必要になる
からである。
実用的なプログラムでは、非常に大きな連立方程式を計算しなくてはならない。たとえば、
私の研究室での計算でも10万元くらいは計算している。これを、ガウス・ジョルダン法で
計算するの時間的にほとんど不可能である。そこで、これよりは格段に計算の速い反復法
を用いている。ここでは、反復法を簡単に説明する。
当然ここでも、連立方程式
を満たす
を数値計算により、求めることになる。ここで、真の解
とする。
ここで、ある計算によりn回目で求められたものを
とする。そして、計算回数を増やして、
|
(12) |
になったとする。この様に計算回数を増やして、真の解に近づける方法を反復法という。
この様な方法は、行列
を
と分解するだけで、容易に作ることが
できる。たとえば、
とすればよい。ここで、
が
に収束するとする。すると、式
(
13)と式(
11)を比べれば、
と
は等しいことがわかる。すなわち、式(
13)で元の方程式
(
11)を表した場合、
が収束すれば、必ず真の解
に収束するのである。別の解に収束することはなく、真の解に収束するか、発散
するかのいずれかである。振動することはないのか?。それはよい質問である。興味があ
る人が調べてみてほしい。
先の説明で、式(
13)を使った反復法の場合、
の収束が重要
であることがわかった。ここでは、これが収束する条件を示す。
真の解の場合、式(13)は
となる。この式(
14)から式(
13)を引くと、
となる。
|
(15) |
となる。ここで、
や
は、真の解からの差、すな
わち、誤差を示している。k回目の計算の誤差を
とすると、
|
(16) |
と表すことができる。この誤差ベクトル
がゼロに収束すれば、ハッピーなのだ。
ハッピーになるための条件を探すために、計算の最初の誤差を
とする。すると、
となる。この式の右辺に行列のk乗の計算がある。このとき、
2.3
節で得た結果を利用する。行列
の固有値と固有ベクトルで作る行列
を、
と
とすると、式(
17)は
|
(18) |
となる。明らかに、計算回数kを増やしていくと、誤差のベクトルは
に依存す
る。これは、
|
(19) |
なので、
の場合、誤差
がゼロに収束するためには、固有
値すべてが
でなくてはならない。そして、収束の速度は、最大の固有値
に依存する。この絶対値が最大の固有値をスペクトル半径と言う。
ここで言いたいのは、連立方程式を式(13)の反復法で計算する場合、
結果が真の値に収束するためには、行列
の最大固有値の絶対値が1以
下でなくてはならないと言うことである。
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成16年12月14日