2017-09-28 10 views
0

私はgnuplotを使っていくつかのポイントを通してベストフィットをプロットしようとしています。 3つのデータパッケージが1つのプロットに含まれていなければなりません。各パッケージには最適な線分が含まれています。 `ベストフィットラインとしての負の指数を含むオイラーの数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 

しかし、今、2つの問題があります。これは、これまで私のコードで最初のものは、すぐに私はオイラー数の括弧内のマイナスを置くと何Diagrammがないことである(私はしないでください理由を知ってください)、2番目の事実は、オイラーズ数に正の指数を使用すると、1つのベストフィットラインしかないという事実です。

誰かがこれらの問題が発生する理由と解決方法を説明できると非常に感謝します。

データパッケージ:

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: 
+0

ないことを確認影響が結果その場合、しかし「フィットZ(x)の」フィットパラメータを逆にし、中すなわち、via j、pの代わりにp、jを入力してください。 – bambino350

+0

私はそれを試しましたが、悲しいことにうまくいきません。 – user8691348

答えて

1

あなたはいくつかを指定することで、gnuplotのを助けるために持っていますフィッティングパラメータの合理的な初期条件については、help fit starting_valuesを参照してください。たとえば、あなたのfitコマンドの前に

j = 500. 
i = 500. 
m = 500. 
p = -1. 
o = -1. 
v = -1. 

を追加すると、合理的な何かを与える:

enter image description here

+0

クイックヘルプありがとうございます。決してこのアイデアは考えられませんでしたが、うまくいくようです。しかし、私はまだ何かひどく間違っているようです。私はあなたが示唆した方法でそれを試しましたが、 "機能評価中の未定義の値"というエラーが表示されました。私はエラーを見つけましたが、私はそれを修正することができないので、私は正しい方法を理解していないようです。 – user8691348

+0

これは奇妙です。ここでうまくいく。スクリプトを実行したときの出力(特に 'fit'コマンドで表示される診断)を含むようにあなたの投稿を編集できましたか? – user8153

+0

私はMac OS上でそれを修正しようとし、それは最初の試みで完全に働いた。だから私は本当に私が普段使っているUbuntuのバージョンではうまくいかないのかどうか分からない。 Mac OS上で動作するのはこのPlotだけです。私は同様の図を作成するために使用したい別のデータパッケージを持っていますが、Ubuntuでは動作しませんでしたが、Mac OSでは動作しませんでした。 – user8691348

関連する問題