Introduction: Como Hallar El Recorrido De Un Objeto Y El Área Bajo La Curva En Python
Este programa gráfica la curva que existe entre la relación velocidad contra tiempo en el movimiento de un objeto. Además este programa calcula el recorrido que hizo este objeto al encontrar el área debajo de la curva que se gráfica.
Step 1: Haz Un Vídeo En Tracker Y Haz El Seguimiento
Crea un vídeo con un objeto moviéndose. Haz el seguimiento de este y utiliza los datos de velocidad contra tiempo. Guarda esos datos como un archivo txt para utilizarlo posteriormente en el código.
Puede descargar este programa en el siguiente link: http://physlets.org/tracker/
Step 2: Importar E Instalar Librerías
Debes importar las librerías llamadas numpy y matplotlib.pyplot. Esto es porque sin ellas el código no funcionaría. Antes de importar estas librerías debes instalarlas. En Windows debes primero presionar el botón windows y el botón R. Aparecerá una ventana negra, debes escribir lo siguiente:
cd c:/python27/scripts
Presionas enter y luego debes decirle que instale las librerías de pip.
Este es el código que debes utilizar en el programa:
<p>import numpy as np<br>import matplotlib.pyplot as plt</p>
Step 3: Crea Una Variable Que Contenga Los Datos a Gráficar Y Añádelos a Una Lista
Usa una lista de datos (los datos que conseguiste en tracker). Esa lista debes asignarla a una variable para que se guarden. Luego esa variable añádela a dos listas, una para el eje x y otra para el eje y.
data=np.loadtxt("Datos tec.txt",float)<br>x=data[0:1000,0] y=data[0:1000,1]
Step 4: Encuentra El Área
Para el área debes crear un for i in range. Debes limitarlo a el numero de datos que tienes. Luego al ser una curva, debes hacer que el programa calcule el área de trapecios pequeños y se sumen estas áreas. El área de un trapecio es sumando las dos bases, multiplicarla por la altura y dividendo en dos. Para que haga varios trapecios debes decir que se coja el dato inicial, que se sume el siguiente y se divida en 2. Luego ese valor multiplicarlo por el dato inicial restado al dato siguiente. Esto lo debes anexar a una lista vacía que puedes llamar área.
area=[]<br>for i in range(0,10): area.append((((y[i+1]+y[i])/2)*(x[i+1]-x[i])))
Step 5: Imprime El Área
Para imprimir los resultados de tu área, debes imprimir la suma de cada área.
print "El recorrido fue de", sum(area), "metros"
Step 6: Gráfica Los Resultados
Para gráficar los resultados es muy sencillo. Debes escribir plt.plot y entre paréntesis las listas en las que tienes guardados los datos con los que vas a trabajar. Finalmente escribes plt.show para que se pueda visualizar la gráfica.
plt.plot(x,y, "r-")<br>plt.fill_between(x,y) plt.show()
Step 7: Resultado Final
El resultado final debería ser similar a esto. La gráfica depende del movimiento que estés analizando. Particularmente en este es un objeto cayendo, por lo que el resultado es negativo, pues el desplazamiento es negativo.
import numpy as np
import matplotlib.pyplot as plt
data=np.loadtxt("Datos tec.txt",float) x=data[0:1000,0] y=data[0:1000,1]
area=[] for i in range(0,10): area.append((((y[i+1]+y[i])/2)*(x[i+1]-x[i])))
print "El recorrido fue de", sum(area), "metros"
plt.plot(x,y, "r-") plt.fill_between(x,y) plt.show()