最小二乗法

10      210
20      1000
21      1100
30      2000

みたいな離散データから最小二乗法で数式を求めたいとき。先のテキストを data00 として、gnuplot

a=20
b=100
f(x)=a*x+b
fit f(x) "data00" using 1:2 via a,b
print "ax + b"
print "a = ", a, ", b = ", b

とかしてやると、最小二乗法で適当な値を探してくれる。a, b に最初に与えてる値はいい加減な初期値。出力は

... 色々あって
ax + b
a = 89.277708588441, b = -730.373598905207

みたいな。

数式処理系とかのソフトは使ったことないのでいつも gnuplot で。

test