【发布时间】:2015-05-27 13:04:46
【问题描述】:
我正在尝试使用 gnuplot 将渐近曲线拟合到我的数据中。它是一个数据集,显示了测试期间的反应时间结果。我已经能够使用以下代码绘制数据并通过它拟合一条直线。
f(x) = a*x + c;
fit f(x) 'ReactionLearning.txt' using 1:2 via a,c
plot 'ReactionLearning.txt' using 1:2 with points lt 1 pt 3 notitle, \
f(x) with lines notitle
结果如下: http://imgur.com/PlQmalX.jpg
但是,由于这应该显示学习效果,因此渐近曲线会更有意义,因为由学习效果引起的性能提升最终会停止,从而使直线变平。
据我了解,渐近曲线是使用 f(x) = 1/x 创建的。所以我把我的代码改成了
f(x) = 1/(a*x)
fit f(x) 'ReactionLearning.txt' using 1:2 via a
plot 'ReactionLearning.txt' using 1:2 with points lt 1 pt 3 notitle, \
f(x) with lines notitle
但是,我得到这个输出:http://imgur.com/PimTa1T
有人可以解释我在这里做错了什么吗?
谢谢
【问题讨论】:
-
您使用的模型完全错误。 1/x 没有为 x=0 定义,并且对于大 x 收敛到 y=0。尝试手动将这个函数“拟合”到你的数据集,你不会有太大的成功。
标签: gnuplot