next up previous contents
: コマンド fit の使い方 : 非線形最小2乗法によるデータへの曲線のあてはめ : 非線形最小2乗法によるデータへの曲線のあてはめ 目次

簡単な例題

最小2乗法でデータに曲線や曲面をあてはめる手順は, というものです.

さっそく, 例題を見てみましょう.

9.47(a)のようなデータファイルを考えます. ファイル名は f0.dat とします.

図 9.47: データファイル f0.dat とそのプロット
\includegraphics[scale=1]{EPS/20-file.eps}
\includegraphics[scale=1]{EPS/gnuplot-fit-0.eps}
(a)データファイル f0.dat (b) f0.dat をプロットしたもの

このデータに, $ f(x)=a x +b$という直線をあてはめてみることにします. このためには,

  f(x)=a*x+b [Enter]
  fit f(x) 'f0.dat' via a,b [Enter]
と入力します. すると, gnuplotのウィンドウは 図9.48のような状態になります.
図 9.48: コマンド fit の実行が終わったときの gnuplot のウィンドウの状態
\includegraphics[scale=.8]{EPS/gnuplot-fit-finished.eps}
このウィンドウには, パラメータの値, 計算が終了するまでにおこなわれた繰り返し計算の回数 およびいくつかの統計情報が表示されます.

では, これに続いて, 計算された直線とデータを重ね書きしてみましょう.

  plot 'f0.dat' pt 6 ps 2, f(x) [Enter]
というコマンドを実行し, データファイル f0.dat と 関数 f(x)を重ね書きしてみます. すると, 図9.49のような結果が得られます.
図 9.49: データ f0.dat に直線を当てはめた結果
\includegraphics[scale=1]{EPS/gnuplot-fit-r0.eps}

次に, このグラフに

$\displaystyle f(x)=a x + b + c \sin (d x)
$

と関数をあてはめてみます. ただし, 計算を始める前に, パラメータaは0.5 bは15, cは10, dは0.1 で初期化しておくことにします.
  a=0.5 [Enter]
  b=15 [Enter]
  c=10 [Enter]
  d=0.1 [Enter]
  e=1 [Enter]
  f(x)=a*x+b + c *sin(d*x) [Enter]
  fit f(x) 'f0.dat' via a,b,c,d [Enter]
  plot 'f0.dat' pt 5 ps 3, f(x) [Enter]
というコマンドを実行すると, すると, 図9.50のような結果が得られます.
図 9.50: データ f0.dat に非線形関数を当てはめた結果
\includegraphics[scale=1]{EPS/gnuplot-fit-r1.eps}

計算が終わったときのパラメータをファイルに保存しておきたいときには,

  save variables 'パラメータファイル' [Enter]
とします. ここに, 「パラメータファイル」と書かれた部分には 適当なファイル名が入ります. 上記のコマンドを実行すると, たとえば図9.51のようなファイルが作成されます.
図 9.51: パラメータが保存されたファイル
\includegraphics[scale=.8]{EPS/gnuplot-fit-p1.eps}


next up previous contents
: コマンド fit の使い方 : 非線形最小2乗法によるデータへの曲線のあてはめ : 非線形最小2乗法によるデータへの曲線のあてはめ 目次
Shigeru HANBA 平成17年7月16日