Wie kann ich den plot der Ableitung des Graphen in gnuplot?
Habe ich eine Reihe von Messungen einer variable über die Zeit. Ich habe diese Messungen in eine Datei mit dem Namen "Ergebnisse", die mit diesem format:
# time sample
0 5
12 43
234 342
etc...
Kann ich problemlos Grundstück dies in gnuplot mit:
plot "results"
Gibt es eine Möglichkeit, um eine Darstellung der Ableitung dieser Messungen in Bezug auf Zeit (z.B. dsample/dt) direkt aus gnuplot, oder muss ich die berechnen die Ableitung getrennt und Grundstück , dass direkt in gnuplot?
InformationsquelleAutor Nathan Fellman | 2013-04-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie es tun, indem Sie eine Funktion definieren, nehmen Sie die Ableitung:
d2(x,y) (das ist wahrscheinlich das, was du suchst) nur berechnet Höhenunterschieds über die Strecke (delta y auf delta x) an alle, aber die ersten Daten zeigen, und d(y) berechnet delta y in der gleichen Weise. Angesichts dieser Daten-Datei
Das Ergebnis ist
interessanter Ansatz, Sie sollten hinzufügen, ein bisschen explination. Ich denke auch dies kann geändert werden, um eine Darstellung der Ableitung an die Mittelpunkte zwischen den ersten Daten statt - Aussehen könnte ein bisschen besser. Am Ende denke ich, dass das finden der richtigen Werkzeug für den job hier gilt, wenn..
Ich konnte nicht mehr Zustimmen. Während Sie kann das mit gnuplot, ich weiß nicht, dass Sie sollte. Es wäre sehr viel leichter zu verstehen/ändern wenn Sie schrieb eine schnelle Skript zu nehmen, das Derivat in einer anderen Sprache und Hintergrundmusik, die in gnuplot, denke ich.
Ich aktualisiert die Funktionen ein bisschen, nun bringt es die abgeleitete Punkte auf die Mittelpunkte der Daten. Ich Stimme definitiv, dass es in der Regel sinnvoll, das zu tun diese Art der Verarbeitung außerhalb von gnuplot. Ich halte diese Funktionen in meinem
.gnuplot
- Datei für eine quick-and-dirty-look auf Derivate. Ich habe in der Regel eng verteilte Daten, so dass der offset egal ist, ob ich bin gerade auf der Suche für raue Standorte der minima/maxima.InformationsquelleAutor andyras
Alternative (eher Allgemeine) syntax, um eine Darstellung der Ableitung ist gegeben hier von Viktor T. Toth
Erklärung: Die datafile-Modifizierer (nach mit) innerhalb der Klammern interpretiert werden, da die berechneten Koordinaten des Punktes (x):(y), berechnete Zeilen aus der Datendatei. Für jede Zeile, die Spalte values ($1, $2, ...) verändert werden dürfen arithmetische Operationen. Der Wert der Klammer ist der Letzte Ausdruck in eine Komma-getrennte Liste von Ausdrücken. Die ersten beiden werden zuerst ausgewertet und in Variablen gespeichert werden, die später und für die nächste Zeile. Ein pseudo-code für die oben genannten syntax ist:
Extra: Diese Erklärung kann auch verwendet werden, zu interpretieren @andryas Lösung für die Ableitung der Funktion d2(x,y). Der einzige Unterschied ist die Verwendung von $0. $0 in gnuplot ist die 'nullte' - Spalte der Datendatei, die im wesentlichen die Nummer der Zeile (wie in einer Tabellenkalkulation, die nach ignorieren den Kommentar-Zeilen in der Datendatei).
$0==0?
überprüft, ob es die erste Zeile und vergibt einen 1/0 (NaN), so dass der plot-Befehl ignoriert und nicht zeichnen Sie es. Der code ist jedoch nur richtig, wenn das Intervall die Länge festgelegt ist (im obigen Fall 0.5). Auf der anderen Seite, Viktor-code berechnet den Abstand für jede Zeile.InformationsquelleAutor Sunthar