ホーム ] TIPS ウィンドウズ系 ] TIPS グラフィックス系 ] TIPS メルチメディア系 ] TIPS 理数系 ] TIPS 総覧 ]

上へ
S0001 数式処理
S0002 数式演算
S0003 陰関数のグラフ
S0004 モンテカルロ法
S0005 最小自乗法
S0006 高速冪乗算
S0007 正規乱数
S0008 相関係数
S0101 高速ソート
S0102 高速検索

VB.NET2005 TIPS / 理数系

S0005 最小自乗法

最終更新:2006/11/12  変更

●解説

 測定した点の集合から、それらの点に最も相応しい曲線を当てはめる方法である。近似した曲線と測定点の差の自乗和を最小にする係数を求めることからこう呼ばれている。

●原理

 m次多項式近似とすれば、

  f(x) = 把i・xi  (i = 0 to m)

なる多項式の係数群 ci を求めることになる。データ数 n の xi、yi を測定値とすれば、全ての測定値と方程式の距離の自乗和、

    Σ(yi - f(xi))2

を最小にする、c を求める。これには、

   [ Σ sk+j・cj = tk    j = 0 to m]  k = 0 to m の m + 1 組

なる連立方程式を解けばよい。但し、

 [  si = Σ xji  j = 1 to n ]  i = 0 to 2m

  [ ti = Σ yj・xji  j = 1 to n ]  i = 0 to m

である。連立方程式はガウス・ジョルダン法で解く。

●コード

 FreeMath.vb の CurveFitting メソッドを参照。

●事例

 以下の図では、青点は原関数(測定点)、赤線は最小自乗法で算出した係数による関数グラフとなっている。図の上部の式は算出した係数による式。

○一次関数

 ・y = 4x + 15 を元にデータを生成し、係数を求めた。原関数が完全に再現されている。

 ・y = (4 + rnd)x + 15 + rnd で、不規則な誤差を与えてデータを生成し、係数を求めた。

○二次関数

 ・y = x2 - 20x + 100 [= (x - 10)2]を元にデータを生成し、係数を求めた。原関数が完全に再現されている。

 ・y = x2 - 20x + 100 に揺らぎを与えてデータを生成し、係数を求めた。