Está en la página 1de 9

USO DE PYTHON PARA GRAFICAR FUNCIONES Y CAMPOS

VECTORIALES

Por

WILDER DANILO CASTAO 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 aplicacin de la ingeniera a la solucin


de problemticas que actualmente abundan en la sociedad, es de gran
importancia obtener un modelado de la situacin que se vaya a
estudiar y es que bsicamente la gran mayora de variables que a
diario nos encontramos en el entorno estn regidas internamente por
una ecuacin 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 aplicacin de esta herramienta como lo es la


graficacion de funciones y la utilizacin de campos direccionales es
vital para que el estudiante de ingeniera tenga un mayor panorama
grafico del comportamiento y las tendencias en cuanto a las variables
que se estn trabajando, de hecho, es parte de su campo laboral el
manejar esta clase de situaciones.

Por tal motivo desde el curso de algoritmos y programacin se trabaja


una herramienta muy utilizada para esta clase de seguimientos
(python, Matlab), y por ende, sera muy recomendado que el
estudiante aprendiera nociones bsicas al respecto, que a
continuacin se explicarn paso a paso.

INSTALACIN
Instalacin de la interfaz Spyder para Python.
En windows: descargar e instalar desde el siguiente enlace:
https://github.com/spyder-ide/spyder/releases
En ubuntu: sudo apt-get install spyder
Instalacin del paquete sympy (manejo de matemtica simblica).
En windows:
https://github.com/sympy/sympy/releases
En ubuntu: sudo apt-get install python-sympy
INTERFAZ DEL USUARIO

Ayuda
Explorador de
variables y de
archivos

rea para scripts


Lnea de comandos

GRAFICADO DE FUNCIONES
Importacin de funciones:
El primer paso para utilizar las funciones de python es cargar los
mdulos que las contienen.
En este caso se requieren las funciones numricas del paquete
numpy y las funciones de graficado del paquete matplot lib.
Digite los siguientes comandos en la lnea 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 funcin
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 funcin linspace.
Esta funcin genera un conjunto de n nmeros 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 funcin y=f(x), utilizando las diferentes funciones
matemticas existentes:
Operadores bsicos +,-, * (multiplicacin) y / (divisin).
Potenciacin ** (ej: X al cubo: X**3).
Funciones matemticas conocidas: seno sin (), coseno cos(),
exponencial natural Exp(), etc.
Ejemplo para la funcin y = x2
Y = X**2

Con esta lnea se calcularn 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
parmetros los valores de X y Y calculados previamente.
plt.plot(X, Y)
Se obtendr la grfica de la funcin 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 matemticas, 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 teora cualitativa para EDO, el cual
complementado con el retrato de fase (espirales, sumideros o nodos),
constituyen una potentsima herramienta para revisar el
comportamiento e ilustrar modelos.
CREACIN DE CAMPOS
DIRECCIONALES
Se utilizar python para generar el campo direccional de una
ecuacin diferencial de la forma dy/dx = f(x,y).
Primero que todo ntese que la funcin 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.
GENERACIN DE LOS VALORES
DE X y Y
Se repite el procedimiento utilizado para generar los valores de X en
el ejemplo anterior, utilizando la funcin 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 funcin meshgrid.
X, Y= np.meshgrid(X, Y)

Ejemplo:
X=np.linspace(0,5,5)
Y=np.linspace(0,5,5)

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

En pocas palabras, se ha generado una malla o grid de valores XY


para poder proceder a calcular las pendientes en cada punto.
OBTENCIN DE LOS VALORES
DE LA PENDIENTE
Se escribe la ecuacin de la pendiente (derivada) en funcin 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 FUNCIN QUIVER
Esta funcin permite graficar un campo direccional o campo de
flechas.
El formato de la funcin 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
PARMETROS DE QUIVER
Teniendo en cuenta que la pendiente est dada por la razn deltaY /
deltaX.
Es posible asumir deltaX = 1 y deltaY = derivada (pendiente).
deltaX=1
deltaY=derivada
Para mejorar la presentacin grfica 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 raz cuadrada.
Y se divide cada valor para normalizar:
deltaX=deltaX/longitud
deltaY=deltaY/longitud
GRAFICANDO
Se aplica la funcin quivert con los parmetros indicados
anteriormente
plt.quiver(X, Y, deltaX,deltaY)

ACOPLANDO LO ANTERIOR
El siguiente script permite unificar en una sola grfica el campo direccional de la
ecuacin diferencial dy/dx = 2X y de una de sus soluciones Y(x) = x2.
Se han modificado los rangos de las funciones para una mejor visualizacin.