Está en la página 1de 11

USO DE PYTHON PARA GRAFICAR FUNCIONES Y CAMPOS VECTORIALES

Por

WILDER DANILO CASTAÑO GONZALEZ

JORGE ERNESTO VEGA

Materia ALGORITMOS Y PROGRAMACION

Profesor JAIME VALENCIA

UNIVERSIDAD DE ANTIOQUIA

FACULTAD DE INGENIERA

2015

OBJETIVO

Desde el punto de vista de la aplicación de la ingeniería a la solución de problemáticas que actualmente abundan en la sociedad, es de gran importancia obtener un modelado de la situación que se vaya a estudiar y es que básicamente la gran mayoría de variables que a diario nos encontramos en el entorno están regidas internamente por una ecuación diferencial, es decir, se controlan, se estudia y se predicen posibles cambios en el tiempo mediante esta herramienta, con el fin de buscar la mayor eficiencia posible en lo que se esté trabajando.

Es por eso que la aplicación de esta herramienta como lo es la graficacion de funciones y la utilización de campos direccionales es vital para que el estudiante de ingeniería tenga un mayor panorama grafico del comportamiento y las tendencias en cuanto a las variables que se están trabajando, de hecho, es parte de su campo laboral el manejar esta clase de situaciones.

Por tal motivo desde el curso de algoritmos y programación se trabaja una herramienta muy utilizada para esta clase de seguimientos (python, Matlab), y por ende, sería muy recomendado que el estudiante aprendiera nociones básicas al respecto, que a continuación se explicarán paso a paso.

INSTALACIÓN

● Instalación de la interfaz Spyder para Python.

En windows: descargar e instalar desde el siguiente enlace:

En ubuntu: sudo apt-get install spyder

● Instalación del paquete sympy (manejo de matemática simbólica).

En windows:

En ubuntu: sudo apt-get install python-sympy

INTERFAZ DEL USUARIO

Ayuda Explorador de variables y de archivos

Ayuda Explorador de variables y de archivos

Área para scripts

Línea de comandos

GRAFICADO DE FUNCIONES

● Importación de funciones:

El primer paso para utilizar las funciones de python es cargar los módulos que las contienen. En este caso se requieren las funciones numéricas del paquete numpy y las funciones de graficado del paquete matplot lib. Digite los siguientes comandos en la línea de comandos:

import numpy as np import matplotlib.pyplot as plt

GENERACION DE LOS VALORES DE LA VARIABLE X

Supongamos que se desea graficar una función

y=f(x). ● El primer paso consiste en generar los valores de la variable independiente x que se desean graficar. ● Para esto se utiliza la función linspace. ● Esta función genera un conjunto de n números igualmente espaciados en un intervalo. Digite:

X= np.linspace(0,10,100)

● Genera 100 puntos igualmente espaciados entre 0 y 10 y los

almacena en la variable (vector) X.

CALCULOS DE LOS VALORES DE LA VARIABLE DEPENDIENTE (Y)

Escribir la función y=f(x), utilizando las diferentes funciones matemáticas existentes:

Operadores básicos +,-, * (multiplicación) y / (división).

Potenciación ** (ej: X al cubo: X**3).

Funciones matemáticas conocidas: seno sin (), coseno cos(), exponencial natural Exp(), etc.

Ejemplo para la función y = x2

Y = X**2 Con esta línea se calcularán los valores de Y correspondientes a

cada uno de los valores de X generados en el paso anterior. Puede verificar imprimiendo sus valore simplemente escribiendo el nombre de la variable Y.

GRAFICANDO

● Simplemente se utiliza el comando plot, el cual recibe como parámetros los valores de X y Y calculados previamente. plt.plot(X, Y) ● Se obtendrá la gráfica de la función solicitada.

CREANDO UN SCRIPT

● Los scripts son archivos de texto que guardan secuencias de comandos para poder utilizarlos varias veces. ● Digite nuevamente los comandos anteriores en el área de Script y guarde el archivo de texto resultante, de este modo podrá reutilizarlo. ● Puede utilizar el boton de “play” en cualquier momento para ejecutar el script que se muestra actualmente.

RESULTADO FINAL

Nota: Es importante aclarar al estudiante que existe un recurso llamado campos direccionales. En matemáticas ,

Nota:

Es importante aclarar al estudiante que existe un recurso llamado

campos direccionales.

En

matemáticas, en el ámbito de Ecuaciones Diferenciales Ordinarias

(EDO), se emplea este procedimiento para evaluar el comportamiento de las soluciones (que corresponden a funciones). Éste elemento, es parte de lo que se conoce como teoría cualitativa para EDO, el cual complementado con el retrato de fase (espirales, sumideros o nodos), constituyen una potentísima herramienta para revisar el comportamiento e ilustrar modelos.

CREACIÓN DE CAMPOS DIRECCIONALES ● Se utilizará python para generar el campo direccional de una ecuación diferencial de la forma dy/dx = f(x,y). ● Primero que todo nótese que la función F depende de las dos variables X y Y. ● Por lo tanto se deben generar valores para ambas variables en un intervalo antes de proceder a calcular los valores de F.

GENERACIÓN DE LOS VALORES DE X y Y

● Se repite el procedimiento utilizado para generar los valores de X en el ejemplo anterior, utilizando la función linspace. ● En este caso se utiliza para ambas variables. X = np.linspace(-5,5,20) Y = np.linspace(-5,5,20) Sin embargo, se han generado independientemente los dos vectores y no se tienen en cuenta las combinaciones de estos. ● Las combinaciones se obtienen utilizando la función meshgrid. X, Y= np.meshgrid(X, Y)

Ejemplo:

X=np.linspace(0,5,5)

Y=np.linspace(0,5,5)

GENERACIÓN DE LOS VALORES DE X y Y ● Se repite el procedimiento utilizado para generar

Ejemplo:

X, Y= np.meshgrid(X, Y)

GENERACIÓN DE LOS VALORES DE X y Y ● Se repite el procedimiento utilizado para generar
En pocas palabras, se ha generado una malla o “grid” de valores XY para poder proceder
En pocas palabras, se ha generado una malla o “grid” de valores XY para poder proceder

En pocas palabras, se ha generado una malla o “grid” de valores XY para poder proceder a calcular las pendientes en cada punto.

OBTENCIÓN DE LOS VALORES DE LA PENDIENTE

● Se escribe la ecuación de la pendiente (derivada) en función de las variables X y Y siguiendo las indicaciones dadas para las funciones. ● Ej: dy/dx = 2X

derivada=2*X

Donde la variable derivada almacenará los valores de las pendientes.

LA FUNCIÓN QUIVER

● Esta función permite graficar un campo direccional o campo de flechas. ● El formato de la función es el siguiente:

plt.quiver(X, Y, deltaX,deltaY) Donde X y Y representan las coordenadas de cada uno de las flechas a dibujar (punto inicial). deltaX y deltaY representan las componentes de cada vector en las posiciones X y Y.

OBTENIENDO LOS PARÁMETROS DE QUIVER

● Teniendo en cuenta que la pendiente está dada por la razón deltaY / deltaX. ● Es posible asumir deltaX = 1 y deltaY = derivada (pendiente).

deltaX=1

deltaY=derivada

● Para mejorar la presentación gráfica es mejor normalizar las flechas

para que todas tengan longitud unitaria. ● Se calcula la longitud del vector:

longitud=np.sqrt(deltaX**2 + deltaY**2)

● Donde sqrt se utiliza para obtener la raíz cuadrada.

● Y se divide cada valor para normalizar:

deltaX=deltaX/longitud

deltaY=deltaY/longitud

GRAFICANDO

● Se aplica la función quivert con los parámetros indicados anteriormente

plt.quiver(X, Y, deltaX,deltaY)

● Teniendo en cuenta que la pendiente está dada por la razón deltaY / deltaX. ●

ACOPLANDO LO ANTERIOR

● El siguiente script permite unificar en una sola gráfica el campo direccional de la ecuación diferencial dy/dx = 2X y de una de sus soluciones Y(x) = x2. ● Se han modificado los rangos de las funciones para una mejor visualización.