最小2乗法
【問題】連立1次方程式 Ax =b (Aはm行n列,m≧n)において、ノルム|| Ax - b ||が最小になるx を求む。 【解1】A†Aを修正Cholesky分解R†DR して、三角行列の連立1次方程式 R†y = A†b , Rx =D-1y を解く。
【解2】AをQR分解して、三角行列の連立1次方程式 Rx = Q†b を解く。
|
連立1次方程式Ax =b (Aはm行n列)において、変数より方程式が多い(m>n)場合はぴったり解けない。
そこで、Ax がなるべくb に近くなる解x を求めようというのが最小2乗法である。
◇
Ax とb の距離|| Ax - b || が最小になるのは
すなわちAx - b がAの列ベクトルが張る(m次元の)平面と直交するときである。
この(1)がx が満たすべき方程式であり、変数と方程式の個数が同じなのでx は1つに決まる。
ここでA†Aはエルミート(A†A) †= A†(A†) †= A†A かつ正定値x†A†Ax =||Ax ||2>0であるから、一般のLU分解でなく修正Cholesky分解A†A = R†DRができて、R†y = A†b, Rx=D-1y として解ける。
◇◇
別の方法として、Aが正方行列でなくてもできるQR分解を使ってAx =b を形式的に変形すると
変数と方程式の個数が同じ連立1次方程式に帰着する。
実は、この(2)の解x は上記の(1)の解と同じである。なぜなら(2)の両辺に左からQをかけると
この右辺はQQ†b=(q1†b)q1 + ... + (qn†b)qn だから b - QQ†b はQ のすべての列ベクトルと直交している。
すなわちQQ†b は、Qの列ベクトルが張る平面にb を垂直に射影したベクトルになっている。
さらにA=QR すなわち(a1 , ... , an)= (r11q1 , ... , Σrinqi) だから、Qの列ベクトルが張る平面はAの列ベクトルが張る平面と同じである。
結局、(2')の右辺はAの列ベクトルが張る平面にb を垂直に射影したベクトルであり、(1)と同じ意味になっている。