微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

gnuplot - 非线性曲线拟合、参数初始化和边界定义

如何解决gnuplot - 非线性曲线拟合、参数初始化和边界定义

我正在 Gnuplot 中尝试 NLCF。我的问题是如何为以下形式的函数设置边界和初始化参数:

g (x) = k1*x**(0.5) + k2*x + a*(1-exp(-b*x));

我正在寻找数据的“k1”、“k2”、“a”和“b”值:

x y
0 0
60 0.04959
300 0.1405
600 0.21488
900 0.27273
1200 0.35537
2400 0.59917
3000 0.72727
3600 0.82645
5400 0.92975
7200 0.97107
9000 0.98347
10800 0.9876
12600 0.9876
16200 0.9876
18000 1.02066
23400 1.00413
27000 1

不幸的是,我得到了可能没有意义的负值。我试图为参数设置边界(即 k1、k2、a、b> 0),但我不能在 Gnuplot 中做到这一点。 感谢您的帮助和提示

解决方法

要初始化变量,只需在拟合之前定义它们。您应该选择合理的起始猜测,以使拟合收敛;通过以下猜测,我得到了相当不错的结果:

k1=1e-9
k2=1e-9
a=1
b=5e-4

我绘制了您的数据点和函数,并不断尝试不同的起始值,直到函数看起来不错,然后运行拟合。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。