【发布时间】:2014-07-01 13:41:44
【问题描述】:
我尝试拟合此图 ,因为您可以看到拟合对数据不太好。
我的代码是:
clear
reset
set terminal pngcairo size 1000,600 enhanced font 'Verdana,10'
set output 'LocalEnergyStepZoom.png'
set ylabel '{/Symbol D}H/H_0'
set xlabel 'n_{step}'
set format y '%.2e'
set xrange [*:*]
set yrange [1e-16:*]
f(x) = a*x**b
fit f(x) "revErrEnergyGfortCaotic.txt" via a,b
set logscale
plot 'revErrEnergyGfortCaotic.txt' w p,\
'revErrEnergyGfortRegular.txt' w p,\
f(x) w l lc rgb "black" lw 3
exit
所以问题是我在这里计算的错误是多少?因为我认为在对数对数平面中,我放入代码中的形式应该可以很好地呈现数据。
非常感谢
最后我可以使用Christop答案中的建议来解决问题并稍微修改一下。
我找到了函数的近似斜率(接近-4)然后采用这个参数修复我只用a拟合曲线,发现它我修复它并只修改b。之后使用输出作为拟合的起始解决方案,我找到了最合适的。
【问题讨论】:
-
最好的办法是拟合线性函数
f(x) = a*x + b,然后使用log(y)与log(x)进行拟合。为此,请使用using选项:fit f(x) "data" using (log($1)):(log($2)) via a,b。 -
@Miguel:这应该是一个答案 - 答案!!
-
@RamanShah 问题是(严格来说)关于如何使用 gnuplot 拟合指数,Christoph 的答案是正确的。现在,如果您从数据分析的角度询问解决此问题的正确方法......我将留下评论作为对有类似问题的人有用的“解决方法”。
-
哈哈,很公平,@Miguel。
标签: gnuplot data-fitting