Gnuplot 拟合参数错误,函数求值时未定义值

Gnuplot 拟合参数错误,函数求值时未定义值,gnuplot,Gnuplot,我试图使用Gnuplot进行一些简单的拟合,但遇到了一个无法解释的错误。似乎我在函数的定义上犯了严重的错误 我首先从一些函数开始。这些函数的形式并不重要,因为fits工作得很好,但是因为它们稍后会涉及,所以我也会报告它们 evap(x)=(x>x_fc)?A*qnet(x)/wm2_to_mmh:(x<x_wp)?0:(A*qnet(x)/wm2_to_mmh)*(x-x_wp)/(x_fc-x_wp) fit evap(x) './fluxes_da_1p0.txt' using

我试图使用Gnuplot进行一些简单的拟合,但遇到了一个无法解释的错误。似乎我在函数的定义上犯了严重的错误

我首先从一些函数开始。这些函数的形式并不重要,因为fits工作得很好,但是因为它们稍后会涉及,所以我也会报告它们

evap(x)=(x>x_fc)?A*qnet(x)/wm2_to_mmh:(x<x_wp)?0:(A*qnet(x)/wm2_to_mmh)*(x-x_wp)/(x_fc-x_wp)
fit evap(x) './fluxes_da_1p0.txt' using 1:2 via A, x_fc, x_wp

sensible(x)=( (qnet(x)/wm2_to_mmh)-evap(x) ) / (1+B)+C 
fit sensible(x) './fluxes_da_1p0.txt' using 1:3 via B,C 
如果我强加

m=3.8
e=0.5
只要画出叠加在数据上的函数g(x),它似乎工作得很好

但是如果我尝试使用参数来拟合它

fit g(x) './advection_da_1p0.txt' using 5:2 via m,e
我得到以下错误

iter      chisq       delta/lim  lambda   m             e
0 4.2471983038e+00   0.00e+00  5.51e+00    3.800000e+00   5.000000e-01
1 3.7149813491e+00  -1.43e+04  5.51e-01    3.573384e+00   4.843345e-01

Current data point
=========================
#               = 8 out of 8
x               = 0.0178156
z               = 0.0309726

Current set of parameters
=========================
m               = 0.0178156
e               = -0.0583802

"rain_estimate.gpl", line 52: Undefined value during function evaluation

出于某种原因,Gnuplot正在尝试m,e的奇怪值,尽管我提供了它们的初始值。如果我删除deltalatent(x)依赖项,一切都会正常工作。我错过了一些简单的东西吗

所以我想我自己解决了这个问题。根据我的数据,一条线最适合Gnuplot,因此它试图通过选择一个非常小的系数来消除对deltasensible的指数依赖。与Gnuplot本身相比,数据似乎更像是一个“错误”。

要强制执行肯定的
e
,可以用
e=ep*ep
fit via ep
@maij替换它。感谢您的宝贵建议。实际上,我在Stackexchange上发现了类似的东西,并尝试了一下,但我仍然遇到了一些问题。Gnuplot仍然想要一个更低的e<代码>最终参数集渐近标准误差==================================================m=1.4648+/-0.1888(12.89%)e=8.26822e-05+/-413.7(5.004e+08%)
iter      chisq       delta/lim  lambda   m             e
0 4.2471983038e+00   0.00e+00  5.51e+00    3.800000e+00   5.000000e-01
1 3.7149813491e+00  -1.43e+04  5.51e-01    3.573384e+00   4.843345e-01

Current data point
=========================
#               = 8 out of 8
x               = 0.0178156
z               = 0.0309726

Current set of parameters
=========================
m               = 0.0178156
e               = -0.0583802

"rain_estimate.gpl", line 52: Undefined value during function evaluation