gnuplot 给出了非常大的误差估计

MrD*_*MrD 5 gnuplot curve-fitting

今天我试图用给定的理论模型拟合实验数据。尽管拟合相当好,但 gnuplot 返回了极高的错误:

Final set of parameters            Asymptotic Standard Error
=======================            ==========================

A               = 1.76654e-11      +/- 2.589e-06    (1.465e+07%)
g               = 0.000929911      +/- 1.006e-05    (1.082%)
offset          = 0.831727         +/- 0.005273     (0.634%)
x0              = 25.7152          +/- 3768         (1.465e+04%)
Run Code Online (Sandbox Code Playgroud)

特别是,x0 上的误差是我后续计算的重要度量。显然,这个值绝对是无稽之谈,如下图所示。

我该怎么做才能得到有意义的错误?

截屏

MWE:

f(x,x0,g) = -16.0*A*(g*(g**2.0-12.0*(x-x0)**2))/(pi*(g**2.0+4.0*(x-x0)**2.0)**3.0) + offset
FIT_LIMIT = 1e-16

A=-1e-3
g=1e-3
offset=0.8
x0 = 25.71514200

fit f(x,x0,g) "data" via A,g,offset,x0

plot "data", f(x,x0,g)
Run Code Online (Sandbox Code Playgroud)

数据: 链接(pastebin)

Luu*_*cky -2

我认为问题在于使用三参数函数。从第一行看来x0g是变量。但fit它被用作参数(因为via……)和变量(因为…… f(x,x0,g))的混合。

有多少列有文件“数据”?看起来 2 是正确答案。

尝试这个:

f(x) = -16.0*A*(g*(g**2.0-12.0*(x-x0)**2))/(pi*(g**2.0+4.0*(x-x0)**2.0)**3.0) + offset
FIT_LIMIT = 1e-16

A=-1e-3
g=1e-3
offset=0.8
x0 = 25.71514200

fit f(x) "data" via A,g,offset,x0

plot "data", f(x)
Run Code Online (Sandbox Code Playgroud)

  • 这给出了与 OP 结果相同的结果。事实上,如何将值赋予要评估的函数完全无关。 (2认同)