Métodos de procesamiento de datos de un experimento físico.

A pesar del hecho de que en la mayoría de las instituciones educativas en Rusia, el trabajo de laboratorio se realiza en el formato antiguo (cuando un estudiante pobre, recolectando datos de equipos prehistóricos, midiendo manualmente el período de oscilación con un temporizador, intenta dolorosamente encontrar una explicación para los datos poco realistas), algunas universidades compraron sensores, placas y (lo más importante) computadoras para la comodidad de los estudiantes. Por supuesto, un buen equipo mejora la precisión del experimento. Sin embargo, su humilde servidor muchas veces se encontró con los molestos compañeros de clase: “Bueno, ¿qué nos dio estos sensores? "Es más fácil dibujar gráficos con bolígrafos y medir el tiempo que atormentarse con la programación en un computador". Lo admito, también tuve un período similar de adaptación, que, sin embargo, pasó bastante rápido. Entonces, comparto mi experiencia.
imagen

GNUplot


Quizás esto es lo más simple que podrían mostrarnos en primer lugar (con la posible excepción de, tal vez, Word o Excel). El procesamiento de datos usando gluplot es extremadamente simple y no requiere conocimientos especiales en programación, el lenguaje es casi algorítmico. Ideal para comenzar a trabajar en el procesamiento gráfico de datos.

Como usar


Supongamos que tenemos un archivo con datos: una columna con los valores de medición de algún parámetro. Pongamos nombre a este archivo data.dat. Sabemos que los datos son una distribución normal, sea la distribución en masa de un lote de tornillos. Nuestra tarea es determinar el valor promedio de la masa del tornillo. Mi solución es trazar un histograma a partir de los datos y luego aproximarlo con una curva f(x)=ae frac(xc)2b. A continuación se muestra un ejemplo de código para tal construcción:

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 

En la aproximación, los valores de a, byc se determinarán con bastante buena precisión. En nuestro problema, es fácil adivinar que el parámetro c es el valor promedio de la masa de los objetos medidos. Por lo tanto, utilizando un código simple y algunas consideraciones, puede analizar rápidamente los datos recopilados.

Mis conclusiones sobre trabajar con GNUplot


En los casos en que necesite un procesamiento gráfico rápido de grandes cantidades de datos (grandes en el marco del trabajo de laboratorio), GNUplot es ideal. Sin embargo, a veces aparecen errores, la naturaleza en la que tienes que pensar. Recomiendo usarlo para principiantes para algunos trabajos básicos, por ejemplo, investigación estadística.

Labview


¡Este monstruo está diseñado para propietarios de laboratorios reales! Una plataforma puramente visual para simular el trabajo de laboratorio. Él mismo recopila datos de ComPorts, los procesa y construye gráficos dinámicos. Oportunidades - mucho. La mayoría de los ingenieros trabajan específicamente para Labview. PERO! Se necesita mucho esfuerzo para resolverlo.

imagen

Mis conclusiones sobre trabajar con LabVIEW


Definitivamente no es para principiantes! Si lo desea, puede sentarse un par de días y resolverlo, después de eso, el tiempo de procesamiento para el trabajo de laboratorio en el que puede usar microcontroladores con sensores (en mi caso fue un laboratorio con todo tipo de péndulos) se reducirá significativamente.
imagen

Pitón


Este lenguaje es un gran hallazgo para los físicos. Muy a menudo lo uso para resolver problemas de física computacional, por ejemplo, la solución numérica de ecuaciones diferenciales. Al igual que guplot, este lenguaje es bueno para el procesamiento gráfico de datos, tiene menos errores y simplicidad de sintaxis (aunque no me quejo de guplot). Personalmente, me gusta más Python, pero cada uno tiene el suyo.

Como ejemplo de trabajo con Python, doy interpolación de puntos por el polinomio de Lagrange, porque no había ningún ejemplo más obvio de análisis de datos a la mano . La interpolación se usa generalmente para obtener una fórmula aproximada para la dependencia de dos cantidades.

 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() 

Mis conclusiones sobre trabajar con Python


Para mí, Python es una prioridad. Mucho más funciones que GNUplot, no requiere mucho esfuerzo para comprender. Por supuesto, el uso de Labview es mucho más profesional, pero como soy demasiado vago para dominarlo, requiere una cantidad impresionante de tiempo, prefiero aprender todos los encantos de Python.

En lugar de una conclusión


En esta breve revisión, decidí compartir mi experiencia en el uso de algún software de procesamiento de datos. Espero que te ayude con tus actividades de investigación.

Buena suerte

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


All Articles