我想使用 gnuplot 为许多曲线获取一次多项式方程 (F(x)=a*x+b) 的拟合参数。一些曲线精确地表示为直线。
例如,如果我的数据看起来像
1 1
2 2
3 3
4 4
可以用 f(x)=x (参数 a=0, b=0) 来表示。
但是下面的gnuplot代码
# regression line
f(x) = a*x + b
fit f(x) './test.dat' u 1:2 via a, b
无法计算适合参数,给出以下消息
Singular matrix in Invert_RtR
更新:如果我为拟合函数定义迭代次数,gnuplot 似乎不会“崩溃”
FIT_MAXITER = 1
# regression line
f(x) = a*x + b
fit f(x) './test.dat' u 1:2 via a, b
它应该是 a=1 和 b=0。但是 gnuplot 给出了
Final set of parameters Asymptotic Standard Error
======================= ==========================
a = 0.989067 +/- 0.004339 (0.4387%)
b = 0.0761393 +/- 0.02692 (35.36%)
我如何“强制”gnuplot 计算 a 和 b 的正确值?