如何在 Gnuplot 中拟合指数数据?

问题描述 投票:0回答:2

我正在开发一个项目,需要使用 Gnuplot 将一些实验数据拟合到指数函数。然而,我是 Gnuplot 的新手,不知道如何有效地做到这一点。

我一直在搜索 Gnuplot 文档,但还没有找到解决我的问题的明确解决方案。有人可以提供有关如何使用 Gnuplot 对我的数据执行指数拟合的示例或分步指南吗?

我感谢您提供的任何帮助或建议。预先感谢!

数据:

1    -1.9946
1.2  -2.15925
1.4  -2.39905
1.6  -2.50725
1.8  -2.50005
2    -2.54025
2.2  -2.56675
2.4  -2.6166
2.6  -2.64155
2.8  -2.6209
3    -2.63775
4    -2.65615
5    -2.66575
6    -2.664
7    -2.6669
8    -2.6791
9    -2.66865
10   -2.6687

enter image description here

gnuplot physics data-fitting
2个回答
0
投票

如果您为其定义一个合适的函数来用作描述数据的模型,那么这应该是相当容易的。我建议一些类似的东西:

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

其中 a ~= -2.7, b ~= 0.7, c ~= 2 然后用咒语来拟合并绘制它

 fit f(x) "data.dat" using 1:2 via a, b, c
 plot "data.dat" using 1:2 with points, f(x)

有关拟合指数的更多信息,请访问 “适合初学者的 GnuPlot 中的拟合指数”。过去,我通常发现 Usenet 上的 Gnuplot 小组仍然潜伏着一些知识渊博的 Gnuplot 专家。不过,您需要一个 Usenet 客户端和一个激进的终止文件来消灭垃圾邮件。

我发现 Gnuplot 非常强大,但初始学习曲线也很陡峭,有时在一些更深奥的绘图风格上有点古怪。我建议至少保存您正在使用的脚本,直到您有更好的工作知识为止。它有点神秘,而且对语法错误非常不可原谅。


0
投票

评论:

首先。人们必须选择一种方便的方程模型。我想你选择了 y=a+b.exp(c.x),其中 a 和 c 为负。

第二。必须执行非线性回归来计算参数 a、b、c 的近似值。

非线性回归的常用方法涉及从“猜测”参数初始值开始的迭代演算。有时,由于初始值与未知的正确值相差太远,微积分会失败。

通过下面所示的方法可以计算出非常好的初始值。这种回归方法不是迭代的,也不需要初始“猜测”值。

enter image description here

enter image description here

如果拟合精度不够,请使用上述 a、b、c 值作为非线性回归软件中的“猜测”值。

非迭代方法参考:https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales

© www.soinside.com 2019 - 2024. All rights reserved.