Graph 欧拉';s数,包括负指数作为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

我正试图用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 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尝试了它,但遗憾的是它不起作用。