【问题标题】:Troubles fitting exponential with gnuplot使用 gnuplot 拟合指数的问题
【发布时间】:2017-05-26 18:57:20
【问题描述】:

我有一个名为“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 curve-fitting data-fitting


    【解决方案1】:

    这是一个浮点数问题。

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

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

    【讨论】:

    • 哇,谢谢,这解决了我的问题。我只初始化了b...但我仍然不明白这一点。顺便说一句,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2017-03-02
    • 2023-03-24
    • 2014-07-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多