与 gnuplot 呈指数拟合的麻烦



我有一个名为'dataset.txt的文件,其中包含这些数据

#Temperature (K) - Pressure (kPa)
310.2 5.349
315.6 6.682
320.2 8.015
325.2 10.681
330.2 14.680
335.2 17.346
340.2 22.678
345.2 28.010
350.2 34.675
355.2 44.006
360.2 52.004
365.2 62.668
370.2 73.332
我必须用指数的形式

拟合数据给出的曲线

f(x) = a * exp(x * b) + c

所以我数字

f(x) = a*exp(x*b) + c
fit f(x) 'dataset.txt' u 1:2 via a, b, c

但是我收到该类型的错误

Current data point
=========================
#               = 1 out of 13
x               = nan            
z               = 5.349          
Current set of parameters
=========================
a               = nan            
b               = nan            
c               = 1              
     Function evaluation yields NaN ("not a number")

谁能解释我为什么?是否存在语法错误?我已经用 Origin(在 Windows 上)拟合了这条曲线,没有出现任何问题。为什么 gnuplot 会给我这个奇怪的错误?感谢!

这是一个浮点数问题。

您不初始化拟合参数,因此 gnuplot 选择默认值a=b=c=1 。现在exp(x*b)评估指数函数会产生巨大的值,这导致(浮点)无穷大和马夸特-莱文伯格拟合算法中的NaN

尝试初始化拟合参数,尤其是b,例如b=0.001

最新更新