Methoden zur Verarbeitung von Daten aus einem physikalischen Experiment

Trotz der Tatsache, dass in den meisten Bildungseinrichtungen in Russland Laborarbeiten im alten Format stattfinden (wenn ein armer Student, der Daten von prähistorischen Geräten sammelt, die Schwingungsperiode manuell mit einem Timer misst, schmerzhaft versucht, eine Erklärung für die unrealistischen Daten zu finden), kauften einige Universitäten Sensoren, Boards und (wichtigste) Computer für die Bequemlichkeit der Schüler. Natürlich verbessert eine gute Ausrüstung die Genauigkeit des Experiments. Trotzdem stieß Ihr bescheidener Diener oft auf das Nörgeln von Klassenkameraden: „Nun, was hat uns diese Sensoren gegeben? "Es ist einfacher, Grafiken mit Stiften zu zeichnen und die Zeit zu messen, als mit der Programmierung auf einem Compuctor zu quälen. Ich gebe zu - ich hatte auch eine ähnliche Anpassungsphase, die jedoch ziemlich schnell verging. Also teile ich meine Erfahrungen.
Bild

GNUplot


Vielleicht ist dies die einfachste Sache, die sie uns überhaupt zeigen könnten (mit der möglichen Ausnahme von vielleicht Word oder Excel). Die Verarbeitung von Daten mit gluplot ist äußerst einfach und erfordert keine besonderen Programmierkenntnisse. Die Sprache ist nahezu algorithmisch. Ideal, um mit der Arbeit an der grafischen Datenverarbeitung zu beginnen.

Wie man es benutzt


Angenommen, wir haben eine Datei mit Daten - eine Spalte mit den Messwerten einiger Parameter. Nennen wir diese Datei data.dat. Wir wissen, dass die Daten eine Normalverteilung sind, sei es die Massenverteilung einer Charge von Schrauben. Unsere Aufgabe ist es, den Durchschnittswert der Masse der Schraube zu bestimmen. Meine Lösung besteht darin, ein Histogramm aus den Daten zu zeichnen und es dann mit einer Kurve zu approximieren f(x)=ae frac(xc)2b. Unten finden Sie ein Beispiel für Code für eine solche Konstruktion:

bin_width=0.1 set boxwidth 0.9*bin_width absolute bin_num(x)=floor(x/bin_width) rounded(x)=bin_width*(bin_number(x)+0.5) plot 'data.dat' using (rounded($1)):(1) smooth frequency with boxes set table 'table.dat' replot #   ,       unset table f(x)=a*exp(-(xc)**2/b) a=6#    ""    b=0.01 c=2 fit f(x) 'table.dat' using 1:2 via a, b, c plot f(x), 'data.dat' using (rounded($1)):(1) smooth frequency with boxes 

In der Näherung werden die Werte von a, b und c mit ziemlich guter Genauigkeit bestimmt. In unserem Problem ist es leicht zu erraten, dass der Parameter c der Durchschnittswert der Masse der gemessenen Objekte ist. Mit einfachem Code und einigen Überlegungen können Sie die gesammelten Daten schnell analysieren.

Meine Schlussfolgerungen zur Arbeit mit GNUplot


In Fällen, in denen Sie eine schnelle grafische Verarbeitung großer Datenmengen benötigen (groß im Rahmen der Laborarbeit), ist GNUplot ideal. Trotzdem treten manchmal Fehler auf, über deren Art Sie nachdenken müssen. Ich empfehle es für Anfänger für einige grundlegende Arbeiten, zum Beispiel statistische Forschung.

Labview


Dieses Monster ist für echte Laborbesitzer konzipiert! Eine rein visuelle Plattform zur Simulation von Laborarbeiten. Es sammelt selbst Daten von ComPorts, verarbeitet sie selbst und erstellt selbst dynamische Diagramme. Chancen - viel. Die meisten Ingenieure arbeiten speziell für Labview. ABER! Es erfordert viel Mühe, es herauszufinden.

Bild

Meine Schlussfolgerungen zur Arbeit mit LabVIEW


Auf keinen Fall für Anfänger! Wenn Sie möchten, können Sie ein paar Tage sitzen und es herausfinden. Danach wird die Verarbeitungszeit für Laborarbeiten, bei denen Sie Mikrocontroller mit Sensoren verwenden können (in meinem Fall Labor mit allen Arten von Pendeln), erheblich reduziert.
Bild

Python


Diese Sprache ist ein großartiger Fund für Physiker. Am häufigsten verwende ich es, um Probleme der Computerphysik zu lösen, zum Beispiel die numerische Lösung von Differentialgleichungen. Wie Guplot ist diese Sprache gut für die grafische Datenverarbeitung geeignet, hat weniger Fehler und eine einfache Syntax (obwohl ich mich nicht über Guplot beschwere). Persönlich mag ich Python mehr, aber jeder hat sein eigenes.

Als Beispiel für die Arbeit mit Python gebe ich eine Punktinterpolation durch das Lagrange-Polynom an, da es kein offensichtlicheres Beispiel für eine Datenanalyse gab . Die Interpolation wird normalerweise verwendet, um eine ungefähre Formel für die Abhängigkeit zweier Größen zu erhalten.

 import numpy as np import matplotlib.pyplot as plt def f(x, y, t): lag = 0 for j in range(len(y)): n = 1 dn = 1 for i in range(len(x)): #  if i == j:#      n = n * 1 dn = dn * 1 else: n = n * (t - x[i]) dn = dn * (x[j] - x[i]) lag = lag + y[j] * n / dn return lag xk = np.linspace(-1, 1, 11) yk = 1/(1+xk**2) xnew = np.linspace(-1, 1, 200) ynew = [f(xk, yk, i) for i in xnew] plt.title(u'  ') plt.xlabel(u'x') plt.ylabel(u'y') plt.plot(xk, yk, '.', xnew, ynew) plt.grid() plt.show() 

Meine Schlussfolgerungen zur Arbeit mit Python


Für mich hat Python Priorität. Viel mehr Funktionen als GNUplot erfordern nicht viel Aufwand, um sie zu verstehen. Natürlich ist die Verwendung von Labview viel professioneller, aber da ich zu faul bin , um es zu beherrschen, dauert es beeindruckend lange, und ich lerne lieber den ganzen Charme von Python.

Anstelle einer Schlussfolgerung


In diesem kurzen Rückblick habe ich beschlossen, meine Erfahrungen mit der Verwendung von Datenverarbeitungssoftware zu teilen. Ich hoffe, er hilft Ihnen bei Ihren Forschungsaktivitäten.

Viel Glück!

Source: https://habr.com/ru/post/de444090/


All Articles