連立方程式を解く(MPU法アルゴリズムの実装(1))
関数の形は最初から決まっているのでフィッティングには最小二乗法が使える。という所は前回の時点で概ね方針が決まっていたので特異値分解を使って係数を決定する事になる。
さて、技術計算では連立方程式を解くようなケースが頻繁に現れる。ちょっと考えると不思議だと思う方も多いだろう。技術計算っていつも線形なの?って。
そんな事は無いが適当に(線形)近似すると結局は連立方程式を解く問題に行き着くのだ。
しかし、次際にはここからが技術者の腕の見せ所(?)になる。
連立方程式は行列を使って書けば
だから解は
そういうときには適当な変形を行うのだが行列成分の殆どがゼロに近いようなスパース行列と呼ばれるような時は殆ど絶望的。さらに殆どがゼロなので行列成分全てを保持する必要が無く値の格納方法にも工夫がある。一般には収束計算(Preconditioned共役勾配法等)が適用される。
が最小になる解(最小二乗解)を計算する。もちろん
なら最小二乗解。こんな時に特異値分解を使うのが常套手段となる。
特異値分解というのは次のような行列への分解で、
ちなみに
と置くと
と書く事が出来るが、これはAが正方形の場合の解