使用 gnuplot 拟合指数的问题
Troubles fitting exponential with 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)
现在会产生巨大的值,这会导致 Marquardt-Levenberg 拟合算法中的(浮点)无穷大和 NaN
。
尝试初始化拟合参数,尤其是b
,例如b=0.001
。
我有一个名为 '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)
现在会产生巨大的值,这会导致 Marquardt-Levenberg 拟合算法中的(浮点)无穷大和 NaN
。
尝试初始化拟合参数,尤其是b
,例如b=0.001
。