Gnuplot, Messdaten Fiten < HochschulPhysik < Physik < Naturwiss. < Vorhilfe
|
Aufgabe | Die Aufgabenstellung ist folgende, ich möchte aus einem physikalischem Versuch meine Messdaten auswerten. Dafür muss ich das Untergrundsignal fiten. Ich hab hier leider keine Ahnung wie ich eine Datei anhänge, daher habe ich meine Messdaten als Rar Datei hochgeladen.Zusätzlich habe ich die Daten geplotet und im Paint die gewünschte Fit-Kurve in Schwarz eingezeichnet.
http://www.file-upload.net/download-7521794/Messdaten.rar.html |
Ich kann zwar in bestimmten Bereichen fiten, aber ich kann keine Zwischenbereiche beim Fiten ausblenden lassen. Als Fitfunktion wäre natürlich etwas quadratisches Sinnvoll, z.B. f(x) = a*x², a als Fitparameter.
Ich hoffe jemand kann mir hierbei helfen :)
Danke im Vorraus.
|
|
|
|
Hallo!
Wenn du hier Dateien einfügen willst, gibst du
[ url=1] Datei-Anhang [/url]
ein. Nachdem du den Beitrag abgeschickt hast, kommst du automatisch zu einem Menü, in dem du die Datei hochladen kannst. Genauso geht das mit Bildern, die fügst du mit
[ img] 1 [/img]
ein.
Zu deinem Problem: Du kannst in Gnuplot tatsächlich nur einen fit-bereich angeben, aber nicht ein Bereich darin ausblenden.
Es gibt zwei Möglichkeiten, das doch zu bewerkstelligen:
1.: Setze ein "#" an den Anfang der Zeilen in deinen Daten, die du ignorieren willst. Diese Möglichkeit ist geeignet, wenn es nur um wenige Daten geht.
2.: Definiere dir eine Funktion:
ignoriere(x)= ((x>3) && (x<5)) ? 1/0 : x
In Worten: Ist x>3 UND x<5, DANN gib 1/0 (also nicht definierten Wert) zurück, SONST gib x zurück. Stichwort für dieses Konstrukt: "Fragezeichenoperator"
Jetzt kannst du plotten:
plot "daten.csv" using 1:2, "daten.csv" using (ignoriere($1)):2
Gnuplot plottet nun als erstes alle Daten (rot), und danach nochmal (in grün) nur die daten, deren x-Werte nicht im bereich 3...5 liegen. Das (ignoriere($1)):2 bedeutet nämlich, daß der Wert der ersten Spalte zunächst durch die Funktion gejagt wird, und dann als x-Wert zusammen mit dem y-Wert aus der zweiten Spalte geplottet wird. Falls x keine gültige Zahl ist , also 1/0, kann gnuplot den Wert auch nicht plotten.
Der Fit-Befehl funktioniert dann genauso:
f(x)a*x**2+b*x+c
fit f(x) "daten.csv" using (ignoriere($1)):2 via a, b, c
Kommst du nun weiter?
|
|
|
|