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