
最後に、下のように行列計算を行って結果を出力するんだな。
[∑y_n*x_n]=[∑x_n*x_n ∑x_n][a]
[∑y_n ] [∑x_n ∑1 ][b]
C:\WINDOWS\デスクトップ>perl -alne "$d=$F[2]*$F[4]-$F[0]**2;@a=(($F[4]*$F[3]-$F[0]*$F[1])/$d,($F[2]*$F[1]-$F[0]*$F[3])/$d);END{print \"@a\";}" c.dat
1.03341121358083 1.1275431582802
C:\WINDOWS\デスクトップ>
1つ目がa、2つ目がbなんだな。自信がないのでgnuplotで確かめてみるんだな。
gnuplot> fit a*x+b 'a.dat' via a,b
Final set of parameters Asymptotic Standard Error
======================= ==========================
a = 1.03341 +/- 0.01167 (1.129%)
b = 1.12754 +/- 0.1398 (12.4%)
correlation matrix of the fit parameters:
a b
a 1.000
b -0.877 1.000
gnuplot> print a
1.03341121360931
gnuplot> print b
1.12754315789153
gnuplot> plot 'a.dat',a*x+b
確かに近い値となっていることがわかるんだな。完成したのでGIFで出力しておくんだな。
gnuplot> set terminal gif Terminal type set to 'gif' Options are 'small size 640,480 ' gnuplot> set output 'a.gif' gnuplot> plot 'a.dat',a*x+b gnuplot>