Graph 欧拉';s数,包括负指数作为Gnuplot图的最佳拟合线函数
我正试图用gnuplot通过几个点绘制一条最佳拟合线。有三个数据包,都应该在一个绘图中,包括每个包的最佳拟合线。这是我目前的代码:`Graph 欧拉';s数,包括负指数作为Gnuplot图的最佳拟合线函数,graph,gnuplot,Graph,Gnuplot,我正试图用gnuplot通过几个点绘制一条最佳拟合线。有三个数据包,都应该在一个绘图中,包括每个包的最佳拟合线。这是我目前的代码:` #!/usr/bin/gnuplot #Output Settings set terminal pdfcairo set output "Graph_Versuch_2.pdf" #Graph Settings set title "Abnahme der Umdrehungsfrequenz" set xlabel "Zeit in Sekunde
#!/usr/bin/gnuplot
#Output Settings
set terminal pdfcairo
set output "Graph_Versuch_2.pdf"
#Graph Settings
set title "Abnahme der Umdrehungsfrequenz"
set xlabel "Zeit in Sekunden"
set xrange [0:60]
set ylabel "Drehzahl in RPM"
set logscale y
#Fit Settings
z(x) = j*exp(p*x)
k(x) = i*exp(o*x)
n(x) = m*exp(v*x)
#Plot Settings
fit z(x) "Werte_1.txt" via p,j
fit k(x) "Werte_2.txt" via i,o
fit n(x) "Werte_3.txt" via m,v
plot "Werte_1.txt" u 1:2 title "Messreihe 1" with points lc rgb 'red' pt 7
ps 0.25, "Werte_2.txt" u 1:2 title "Messreihe 2" with points lc rgb
'green' pt 5 ps 0.25, "Werte_3.txt" u 1:2 title "Messreihe 3" with points
lc rgb 'blue' pt 9 ps 0.25, z(x) with lines lc 'black', k(x) with lines,
n(x) with lines
但现在有两个问题:第一个问题是,只要我在欧拉数的括号内加一个负号,就没有图表(我不知道为什么),第二个问题是,如果我在欧拉数中使用正指数,就只有一条最佳拟合线
如果有人能解释为什么会出现这些问题以及如何解决这些问题,我将不胜感激
数据包:
0 498.4
5 478.6
10 461.9
15 446.6
20 427.1
25 410.1
30 394.1
35 381.1
40 367.4
45 351.5
50 341.5
55 316.4
60 157.4
0 448.8
5 429.7
10 415.6
15 397.8
20 382.4
25 369.0
30 354.7
35 342.1
40 329.9
45 316.1
50 305.7
55 292.8
60 281.7
0 498.6
5 478.8
10 461.2
15 444.0
20 428.2
25 412-8
30 397.9
35 382.6
40 368.8
45 354.9
50 340.8
60 315.9
这是我包括的部分:
#Fit Settings
z(x) = j*exp(p*x)
k(x) = i*exp(o*x)
n(x) = m*exp(v*x)
#Plot Settings
j = 500
i = 500
m = 500
p = -1
o = -1
v = -1
fit z(x) "Werte_1.txt" via p,j
fit k(x) "Werte_2.txt" via i,o
fit n(x) "Werte_3.txt" via m,v
这就是我得到的错误:
Iteration 0
WSSR : 1.78982e+06 delta(WSSR)/WSSR : 0
delta(WSSR) : 0 limit for stopping : 1e-05
lambda : 3.30143
initial set of free parameter values
p = -1
j = 500
Undefined value during function evaluation
"Plot_1.txt", line 34:
您必须通过为拟合参数指定一些合理的初始条件来帮助gnuplot,请参见
帮助拟合起始值
。例如,添加
j = 500.
i = 500.
m = 500.
p = -1.
o = -1.
v = -1.
在您的fit
命令给出合理的结果之前:
谢谢您的快速帮助。从来没有想过这个主意,但它似乎工作得很好。但我似乎仍然在做一些非常错误的事情。我按照你建议的方式尝试了一下,但是我得到了一个错误,说“函数求值时未定义值”。我用谷歌搜索了错误,但似乎我没有正确地理解它,因为我无法修复它;在这里很好用。是否可以编辑您的帖子,以包含运行脚本时获得的输出(特别是通过
fit
命令打印的诊断)?我尝试在Mac OS上修复它,第一次尝试时效果非常好。所以我真的不知道为什么它在我通常使用的Ubuntu版本上不起作用。这是一个在Mac操作系统上运行的绘图。我有另一个数据包,我想用它来制作一个类似的图表,但它在Ubuntu上不起作用,在Mac OS上也不起作用,所以它变得非常奇怪。不确定这是否会影响结果,但在“fit z(x)”中,拟合参数是相反的,即你通过p,j而不是通过j输入,pI尝试了它,但遗憾的是它不起作用。