Introduction: Desplazamiento De Un Objeto Mediante El Calculo De Área En Python

Picture of Desplazamiento De Un Objeto Mediante El Calculo De Área En Python

Para calcular el desplazamiento de un objeto, teniendo en cuenta los principios de la física, es posible encontrar el área de su movimiento en una gráfica de velocidad contra tiempo. Sin embargo, el calculo de esta área no siempre es muy fácil de encontrar dado que los movimientos no siempre son funciones lineales sino que estas pueden tener curvas, lo que complica de manera sustancial su calculo. Por esta razón, este tutorial se centrara en enseñar como hacer un programa en python para que este encuentre el área automáticamente dada una lista de datos y el tiempo que se quiere graficar.

Step 1: Preparate Y Descarga Librerías

Antes que nada, obviamente, hay descargar el programa. Esto se puede hacer en el siguiente link: https://www.python.org/. También hay que tener en cuenta que se debe descargar python 2.7.9. Ahora, es muy importante descargar las librerías en el computador para que funcione todo lo que vamos a hacer, dado que al descargar python, este únicamente trae las funciones básicas, por lo que necesitamos descargarlas primero. Específicamente para este programa, necesitamos matplotlib, para elaborar gráficos, y numpy, para realizar funciones matemáticas de alto nivel.

Para poder descargarlos, en un equipo con sistema operativo iOS, hay que abrir el terminal, que se puede buscar en spotlight (command+space) y escribir "pip install pylab", enter, y luego "pip install matplotlib".

Por el otro lado, en un sistema operativo de windows, se busca la carpeta de python y se abre el programa "pip", por donde se instalan las librerías. Ahora, se abre el código del sistema, tecleando en el buscador cmd. Una vez abierto el programa, se teclea pip, donde aparecerán todas las funciones que tiene el programa. Allí para descargar las librerías, se escribe "pip install pylab", enter, y luego"pip install matplotlib".

Step 2: Importar Librerías

Picture of Importar Librerías

Lo primero, como siempre, es importar las librerías que vamos a necesitar para que todo funcione. Para este programa solamente es necesario importar la librería matplotlib.pyplot y numpy. En primer lugar, necesitamos de matplotlib.pyplot para poder realizar la gráfica con los datos de la lista. En segundo lugar, necesitamos la librería numpy dado que con esta importamos los datos del archivo .txt con los que graficaremos y encontraremos el área bajo la función.

Step 3: Importa La Lista De Datos Que Vas a Utilizar

Picture of Importa La Lista De Datos Que Vas a Utilizar

Cuando ya tenemos importadas las librerías, el siguiente paso es importar los datos con los que vamos a realizar la gráfica y con los cuales se va a encontrar el recorrido del objeto determinado, en este caso un péndulo. Para esto, usamos la función de la librería numpy "loadtxt". A estos datos se los asignamos a una variable que en este caso se llama "data" para poder utilizarlos para poder graficar la función y poder hallar el área. El nombre del archivo debe ser colocado entre paréntesis y comillas justo después de llamar a la función, justo como se ve en la imagen. Algo muy importante es que el archivo debe estar en la misma carpeta en la que está ubicada el programa para que este funcione.

Step 4: Pregunta Al Usuario El Tiempo

Picture of Pregunta Al Usuario El Tiempo

Como dicho anteriormente, este programa también va a ser capaz de preguntarle al usuario cuanto tiempo quiere graficar, obviamente este tiempo debe ser menor o igual al tiempo máximo de los datos, dado que si se ingresa un número mayor a este el programa no funcionara dado que no existen datos suficientes.

Ahora, como este tiempo no representa los datos hay que hacer una conversión de este tiempo para obtener el número de valores que se debe graficar. En primer lugar, tenemos que multiplicar el valor ingresado por el número de decimales que los datos tengan para poder saber hasta donde queremos graficar. En el caso de este péndulo, los valores tenían tres números decimales, por lo que se multiplica por 1000 para que los segundos me queden en milésimas. Sin embargo, no siempre se van a tomar todos esos valores porque el tiempo no se mueve de a milésimas. En este péndulo, cada vez que se avanzaba al siguiente se movían 33 milésimas, por lo que se divide el resultado anterior por este nuevo valor. Con esto, lo único que falta es restarle a esto 1, dado que posteriormente iniciaremos a hacer nuestros trapecios con el valor 1 y el 2.

Step 5: Crea La Lista De Datos Para Traficar Los Datos

Picture of Crea La Lista De Datos Para Traficar Los Datos

Con el conocimiento de cuantos son los valores que hay que graficar teniendo en cuenta el tiempo ingresado por el usuario, es necesario crear una lista con los datos para el eje x y uno para el eje y. Esto se hace asignándole cada variable estos datos. Es importante tener en cuenta que no se grafican todos los datos de la lista sino solo los que obtuvimos en el resultado de la variable anterior. Primero, llamamos a los valores importados, que en este caso llamamos "data", abrimos llaves [ ] e ingresamos el intervalo de valores que, en este caso es de 0 a T, la variable asignada a los datos que se quieren graficar anteriormente, separados por dos puntos (:). Dentro de las mismas llaves, después de una coma, ponemos la columna a la cual nos estamos refiriendo, en el caso de x, la 0, dado que la primera es tomada como la 0. Posteriormente hacemos lo mismo con y pero haciendo referencia a la segunda columna, que es la 1.

Con los datos ya ingresados, utilizamos la función de matplotlib.pyplot que funciona para realizar gráficas, "plot". En esta, entre paréntesis, ponemos los datos que queremos graficar como "x" y "y" teniendo en cuenta las variables asignadas a cada columna cuando importamos la información anteriormente con una coma (,) intermedia. Seguido de una coma, ponemos el color y la forma que queremos que lo grafique. Algunos de estos colores se encuentran más abajo.

Cabe resaltar que siempre hay que poner plt. antes de llamar a la función para que el programa entienda a que librería nos estamos refiriendo.

Step 6: Encuentra El Área

Picture of Encuentra El Área

Con todos los pasos anteriores listos, es posible comenzar a encontrar el área bajo la linea de la función. Como dicho en la introducción, esta área se puede encontrar mediante la medida de múltiples trapecios dibujados justo abajo de la linea de la función. Aunque la medida no es completamente exacta es muy aproximada. El cálculo realizado en python se centra en realizar trapecios, cada uno de el intervalo entre cada dato en x, teniendo en cuenta los y's que le corresponden a cada uno de estos x. Hay que tener en cuenta que la fórmula del área de un trapecio es c*((a+b)/2) donde a y b son los lados paralelos y c el lado que forma 90 grados con a y con b.

Ahora, como tenemos que sumar trapecios hasta que todos los datos se acaben usamos la función while para que pase algo hasta que otra cosa de pasar. Primero, como necesitamos usar diferentes datos de la lista, creamos una variable desde afuera, nosotros utilizamos q y w, que comienzan siendo el dato 1 y el dato 2. Sin embargo, como necesitamos que estos datos cambien cada vez que sean utilizados, usamos la función while, que hace que un loop se repita hasta que algo deje de pasar, en este caso hasta que el dato dos se vuelva igual o mayor al número datos que se utilizan hasta llegar al tiempo que el usuario ingreso. Esto se hace con el fin de poder crear todos los trapecios y sumarlos, encontrando el área. Para poder utilizar la fórmula de los trapecios para poder sumar, necesitamos crear esas lineas hipotéticas entre valores para medir el área de un espacio determinado. Hay que recordar que la columna 0 hace referencia a "x" y la columna 1 a "y". Con estos datos, que cambian cada vez que el loop se repita se utiliza la fórmula del área de un trapecio y, posteriormente, los sumamos todos. Hay que recordar que la variable que se use para sumar las áreas debe estar creada desde afuera porque la tenemos que tener definida desde antes. A esta le ponemos un valor de 0 inicialmente, dado que al principio no se ha sumado ningún área. Finalmente, ya afuera del loop, imprimimos con la función "print" el área y le ponemos las unidades, que son metros.

Step 7: Sombrear El Área Y Finalizar El Programa

Picture of Sombrear El Área Y Finalizar El Programa

Como paso final, el programa debe sombrear el área entre y=0 y su altura, que hace referencia a su velocidad en y. Por esto, lo que hay que hacer es utilizar la función de la librería matplotlib.pyplot, "fill_between". Como en todas las funciones de esta librería, es necesario colocar el plt. antes de ingresar la función para llamar a la librería. Ahora, al final de llamar la función y entre paréntesis, se ponen las variables que hacen referencia a los valores en "x" y en "y" con una coma intermedia para que sombree esos valores y ya.

Con esto hecho, el programa está finalizado. Sin embargo, es importante recordar que para que el programa grafique hay que llamar a la función plot, también de la librería pyplot para que muestre la gráfica.

Step 8: Código Extra

Picture of Código Extra

Si quieren que la gráfica quede con cuadricula utilizamos la función "grid", de pyplot y entre paréntesis true para que la gráfica la tenga.

Los colores se pueden ingresar en cadenas hexadecimales (‘#008000’); tuplas con convención RGB (0,1,0); intensidades de escala de grises (‘0.8’); nombres (‘green’); y por sus respectivas letras ‘b’ para azul, ‘g’ para verde, ‘r’ para rojo, ‘c’ para cián, ‘m’ para magenta, ‘y’ para amarillo, ‘k’ para negro y ‘w’ para blanco.

El titulo de la pestaña de la gráfica se designa con la función title de la librería pyplot ingresando el nombre entre paréntesis y entre comillas.

El nombre de los ejes se puede designar con la función "xlabel" y "ylabel" de la librería pyplot igual que el titulo.

Los tipos de linea más comunes se ubican justo después del color con los referentes: ‘ - ‘ para una línea sólida, ‘ --‘ para una línea a rayas, ‘ -. ‘ para una línea con puntos y rayas y ‘ : ‘ para una línea punteada.

Comments

Evoluer (author)2017-01-21

Hi,

Is there an english version of this available?

Thanks

Nandakumar

http://evoluer.in