需要确认:gnuplot 不会更改初始拟合值

Confirmation required: gnuplot does not change intital fit values

在使用 gnuplot 多年并遇到许多与用户相关的问题之后,我想我终于知道如何将函数拟合到数据集。 今天我尝试了一个简单的

y = m * x² + b 

函数。然而,gnuplot 并没有改变我的 'm' 值。但是,它确实将 'b' 更改为正确的值。 我上传了我的数据集,这是我试图适应的 gnuplot 脚本,也许有人可以在他的机器上重现它并确认,这不是我的计算机的故障,而是脚本中的某种错误代码,或者它甚至可能是一个错误(我非常怀疑)。

set xtics 0.000001
set format x '%10.1E'
set xrange [0:2E-07]
#fit
f(x)=a*(x**2)+b
a=380812
b=1
fit [0:2E-07] f(x) 'GDAMitte1.txt' using (+7.6E-06):2 via a,b

plot 'GDAMitte1.txt' using (+7.6E-06):2, f(x)

我已将数据集粘贴到此处:http://www.heypasteit.com/clip/29LU

非常感谢您对此的回答,即使只是确认它也不适合您的机器。谢谢。

顺便说一句:我设置的初始值几乎是拟合后必须的值,但当然不是那么精确。虽然 gnuplot 应该足够好去哪里。

这是因为两个参数的大小差别很大,检查help fit tips

您应该将函数替换为内置预因子的函数:

f(x) = a *1e5 * (x**2)+b
a=3.8 # instead of 380000
b=1
fit ....

从 gnuplot 版本 5.0 开始,gnuplot 默认情况下会在内部对所有参数进行预缩放,因此只要您的初始值没有偏离太多,任何函数都不会再出现计算残差的问题。