我有一个名为' 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会给我这个奇怪的错误? THX!
答案 0 :(得分:3)
这是一个浮点数问题。
您没有初始化拟合参数,因此gnuplot选择默认值ssh
。现在,评估指数函数a=b=c=1
会产生巨大的值,这会导致Marquardt-Levenberg拟合算法中的(浮点)无穷大和exp(x*b)
。
尝试初始化拟合参数,尤其是NaN
,例如b
。