理工系研究者のための Mac OS X, Windows, Linux メモ
 

Gnuplotを使ってデータ解析するには


最小二乗法でフィッティングカーブを求める

ここでは 1/T [K-1]、D[cm2/s] からなるデータを

D=D0 exp(-Em/T)

にフィットさせる事を考える。両辺対数を取ると

log D = -Em (1/T) + log D0

となり、 y=ax+bの形になっているので最小二乗法で係数 EmとD0を求める。データは、

# T[K] D[cm^2/s]
300 5.676887e-07
400 3.340244e-06
500 9.142180e-06
600 2.428054e-05
700 4.750909e-05
800 5.610052e-05
900 8.580287e-05
1000 1.003600e-04

先ずグラフを描いてみる。

gnuplot> set logscale y
gnuplot> set xlabel "1/T [K^{-1}]"
gnuplot> set ylabel "D[cm^2/s]"
gnuplot> plot"arrhenius.dat" u (1/$1):($2) ps 2

最小二乗法でフィットする関数を求めるためには、

gnuplot> reset
gnuplot> f(x)=a*x+b
gnuplot> fit f(x) "arrhenius.dat" u (1/$1):(log($2)) via a,b
..... resultant parameter values a = -2266.77 b = -6.89267

この値を使ってフィット関数を一緒に描くと、

▼参考サイト or 参考文献