Cálculo Área Bajo Curva (metros)

by sarabuitrago in Craft > Digital Graphics

1158 Views, 1 Favorites, 0 Comments

Cálculo Área Bajo Curva (metros)

Screen Shot 2016-12-07 at 12.58.19 PM.png

Con este programa podrás encontrar ∆x de un objeto por medio de la comparación entre tiempo y velocidad, tomar datos y hallar el área bajo la curva. Este programa además gráfica los datos y los colorea.

Realiza Un Video Y Haz El Seguimiento En Tracker

Screen Shot 2016-12-05 at 3.13.56 PM.png

Para obtener los datos es necesario primero tener un video del objeto en movimiento del cual se quiere analizar su desplazamiento. Por lo tanto, se debe grabar.

Posteriormente, en tracker debes hacer el seguimiento del objeto en movimiento (Importante: No se debe olvidar calibrar).

En el caso en que no esté familiarizado con el uso de Tracker, puede hallar aquí instrucciones que pueden ayudarle:

http://physlets.org/tracker/tracker_help_es.pdf

Creación De Datos

Screen Shot 2016-12-07 at 1.20.33 PM.png
Screen Shot 2016-12-05 at 3.14.16 PM.png
Screen Shot 2016-12-07 at 12.57.27 PM.png

Una vez ya se haya hecho el seguimiento en tracker, es importante que en la tabla que aparece dentro del programa en la esquina inferior derecha, se cambien las variables presentes con tal que queden únicamente las variable vx contra t. Tal y como se puede observar en la imagen. Para realizar esto, se debe hacer click en los encabezados de las tablas en Tracker y seleccionar únicamente la opción "vx".

Una vez se haya garantizado que la tabla está de esa manera, se puede proceder a exportar los datos. En tracker, se debe seleccionar las opciones File > Export > Data file. (Tal como lo muestra la otra imagen) una vez allí se debe seleccionar que se cree un archivo en formato .txt y debes guardarlo con un nombre específico.

La tabla de valores debe resultar tal y como se muestra en la tercera imagen. Es importante tomar en cuenta que dentro del archivo se le deben quitar los encabezados y la data que solo tiene los valores de una columna. Se deben usar puntos para separar los enteros en decimales.

Importar Las Librerías Y Los Datos

Screen Shot 2016-12-07 at 1.27.36 PM.png

Ya teniendo los valores en una tabla de valores en el computador, se puede continuar con el siguiente paso:

Para comenzar, necesitas importar una serie de librerías para tener acceso a las funciones que serán utilizadas. Estas son: numpy y matplotlib.pyplot.

Usted puede encontrar las instrucciones para importar esas librerías a tu computador en el siguiente link: http://stackoverflow.com/questions/11906575/how-t...

Posteriormente, se debe importar los datos de la tabla de valores esto se logra por medio de la función np.loadtxt("NombreDatos.txt"), en este caso el archivo se llama "Datos_pt.txt". A continuación, debes crear dos listas a las que le asignas los valores de alguna de las columnas de los datos. Asegúrese de que la columna de tiempo quede asignada al eje "x" y que la columna de velocidad quede asignada al eje "y"

Para Ubicar Los Puntos, Guardar Data Y Hallar El Área

Screen Shot 2016-12-07 at 12.56.58 PM.png
Screen Shot 2016-12-07 at 1.27.42 PM.png

Para ubicar los puntos y guardar la data en una lista, se utilizará un ciclo:

Para ubicar los puntos:

Se va a utilizar la fórmula de los trapecios para hallar el área total. Por lo tanto, se van a ubicar puntos como si fuese de un trapecio y posteriormente se van a sumar todas las áreas que se crearon. Para comenzar, se tiene que crear un ciclo, de acuerdo a x número de datos que hay dentro de la lista. Para esto se utiliza "for i in range" para que se tomen todos los valores hasta, en este caso, 75 (números enteros). Posteriormente, dentro de este ciclo, se asignan unas variables para que vayan tomando valores distintos en cada ciclo. Se necesitan crear cuatro variables, para los puntos tal y como lo están mostrados en la imagen. Estas variables son: tiempo, tiempo2, velocidad, velocidad2. A "tiempo" y "velocidad" se les asignan los valores que corresponden al dato número i de la lista y a "tiempo2" y "velocidad2" se le asigna el dato que le sigue en esas listas, es por eso que se escribe "i + 1". Es importante tener en cuenta que se tienen que crear listas, que en este caso son "puntosvolumen" y "puntospresion" para que guarden todos los valores que toman las variables "volumen" y "presión" a lo largo del ciclo. Se va aumentando el contador i, para que siempre se tome el próximo valor dentro de las listas y así se vaya avanzando en el la lista de datos y no se tome siempre el mismo.

Para hallar el área:

Se conoce la fórmula del área del trapecio. Para encontrar la base del trapezoide se utiliza la fórmula: base=tiempo-tiempo2. Posteriormente, se conoce que la longitud de los dos lados laterales es igual al valor de los puntos "tiempo" y "tiempo2". Por lo tanto se deben remplazar los valores para encontrar el área de un trapecio. Posteriormente, se crea otra variable para que vaya sumando todos los valores del área de todos los trapecios que fueron creados durante el ciclo. Esta suma final será el valor final del área debajo de la curva.

Para cerrar el ciclo:

Se utiliza el contador "i" que va en aumento. Por eso se escribe "i+1": Para que siempre se vaya tomando el siguiente valor de la lista. Siempre se va a tomar el siguiente valor de la lista hasta que se llegue al último, es decir, en este caso el número 75 .

Ejecutando, Imprimiendo Y Graficando

Screen Shot 2016-12-07 at 1.17.41 PM.png
Screen Shot 2016-12-07 at 1.27.50 PM.png

Para imprimir el resultado, se debe escribir la función "print" y poner lo que se desee imprimir. Para sombrear el área debajo de la curva, se utiliza la función "plt.fill_between()" . Para ubicar los puntos que conformarán una línea (la curva) se utiliza la función "plt.plot()" y se incluyen las listas en las que se guardaron todos los valores que tomaron las variables volumen y presion. Es decir, las listas de "puntostiempo" y "puntosvelocidad". Finalmente, se debe incluir la función "plt.show()".

En este caso, tiene sentido que el resultado sea muy próximo a cero ya que el movimiento era oscilatorio: comenzó y terminó en la misma posición y es por eso que ∆x es cero.

RESULTADO FINAL

Screen Shot 2016-12-11 at 4.45.32 PM.png

import numpy as np

import matplotlib.pyplot as plt #importar las librerias necesarias

#para importar y seleccinoar datos de un archivo

data=np.loadtxt("Datos_pt.txt")

x=data[1:,0] #tomar valores columna 2

y=data[1:,1] #tomar valores columna 1

#Creacion de listas para traficar

puntostiempo=[]

puntosvelocidad=[]

areatotal=0

#creacion del ciclo para crear los trapecios e ir sumando las areas

for i in range (75): #Son, en este caso, 75 datos en la lista

tiempo=x[i]

tiempo2=x[i+1]

puntostiempo.append(tiempo) #para coleccionar los valores de tiempo en una lista

velocidad=y[i]

velocidad2=y[i+1]

puntosvelocidad.append(velocidad) #para coleccionar los valores de velocidad en una lista

#Para calcular el area

base=tiempo-tiempo2

area=base*((velocidad+velocidad2)/2)

areatotal=areatotal+area

i=i+1 # i es el contador del ciclo

#Seccion de ejecucion del programa

print "El movimiento (area debajo de la curva) es de",areatotal,"metros"

plt.fill_between(x,y)

plt.plot(puntostiempo,puntosvelocidad)

plt.show()