n 変数関数の最小二乗近似
どうも,筆者です.数点のデータから,関数フィッティングを行う必要が出てきたので,原理から考えたいと思う. gnuplot の fit コマンドを使えば,解は出てくるけど,C 言語等のプログラム中で処理を行いたいため,1 から考えてみる.
最小二乗近似
まず, 点 から得られる観測データ が 個あるとする.
これらを関数
で近似することを考える.ここで,関数 は 番目の基底関数である. このとき,測定値の組 における誤差 を
で定義する.そして, 個のデータの二乗誤差
を最小にするような係数 を求める.これを満たす は,
を解くことで求められる.ここで,式 (4) の左辺は,
で求められる.式 (2) から,実際に偏微分の値を求めると,
となるので,これらを式 (5) に代入すると, 個の連立方程式
が得られる.これは
と書き換えることが出来, の行列 , 次元ベクトル , 次元ベクトル を用いて,
と表せる.これは,正規方程式と呼ばれる.ガウス・ジョルダン法等を用いて解を求める.行列が特異になる場合は,特異値分解を用いて,解くことになる.
はてなブログにおける数式の表記
よく分からないが,文章中の数式に関して,「_」を数式中で使用すると,正しく表示されないことが分かった.なので, などを文章中で表示するには,「\_」と「_」をエスケープすることで,表示することが出来る.はてなブログの 記法には,まだまだ慣れない.少しずつ解決していこうと思う.現段階でまだ謎なのは,
- <pre> 中で,「_」をエスケープしなくても表示出来る理由
- 数式中で式番号を表示する方法.出来れば,label をつけて相互参照を行いたい(現段階では,直接数字を入力している).
- どの程度まで の表記が使えるか.
ということである.3 つ目に関しては,色々試すのが早い気がする...