Laboratorio de Matemtica V Rony J. Letona 1 Manual rpido para evaluacin de series en Python Breve introduccin Python es un lenguaje de programacin interpretado con fines cientficos, de educacin y para hacer programas de uso rpido. Es la base sobre la que han hecho muchas aplicaciones (e.g. aplicaciones de NASA, Gmail, Astra-Zeneca, etc.). Su facilidad de uso se basa en su sintaxis simplificada y en su poca formalidad en lo que se refiere a definicin de variables y manejo de objetos. Tambin es muy flexible a la hora de trabajar en varios sistemas operativos (OS X, Windows, Linux), puesto que puede ser ejecutado en todos y de la misma manera. Finalmente, su mayor ventaja es su precio. Este es gratis para cualquiera que desee descargarlo, adems de que existen numerosos manuales y tutoriales en lnea para poder aprender a usarlo. En general, es el lenguaje que se est introduciendo al mbito cientfico. Algunos conceptos clave Como todo lenguaje de programacin, se debe de saber algunos conceptos clave antes de comenzar a dar los primeros pasos. Entre ellos est el hecho de que en Python no se declaran variables. Eso significa que no se debe de estar diciendo qu variable del programa va a servir para qu o de qu manera. En vez de eso la estrategia es un enfoque ms matemtico. Tampoco se utilizan llaves o marcadores de inicio y final a la hora de trabajar con funciones ms avanzadas. En vez de eso se utiliza solo el espacio en blanco. Para los que saben de programacin, esto resultar un poco extrao al principio. Para los que no saben, disfrtenlo; la experiencia es ms agradable de esta manera. Primeros Pasos y Hola Mundo! Para comenzar a dar los primeros pasos, se puede comenzar con operaciones matemticas sencillas. Estas las puede realizar el intrprete de manera rpida y fcil. Algo un poco ms complicado es el uso de cadenas o strings. Estas no son ms que texto que se representa entre comillas en el programa. Por ejemplo, una cadena podra ser Hola, que tal?. Sin embargo, escribir esto en el programa y dejarlo all no resulta algo til. Pedirle al intrprete que devuelva esto en la pantalla es el primer paso para comenzar. >>> 3 + 2 5 >>> 7 - 8 -1 >>> 1.2 * 3.87 4.644 >>> x = 5 >>> x 5 >>> -5 > 3 False Universidad de San Carlos de Guatemala Facultad de Ciencias Qumicas y Farmacia Laboratorio de Matemtica V Rony J. Letona 2 En el caso del programa Hola mundo! entramos en contacto, por primera vez, con una funcin del lenguaje: print. Cada lenguaje tiene una pequea coleccin de funciones y en este caso vamos a revisar algunas de ellas. Tipos de Datos En Python se tienen diferentes tipos de datos con los que se puede trabajar. Entre ellos estn los enteros, los puntos flotantes (nmeros con decimales), las cadenas, las listas, los diccionarios, etc. Solo con los mencionadas aqu es ms que suficiente para hacer programas sencillos. Veamos, pues, un ejemplo de cada uno. Tipo Ejemplo Explicacin Booleanos True, False Si se recuerdan de sus tablas de verdad, para esto sirven. Enteros 1, 2, 3, -7, 0, 14, 100 Nmeros enteros como todos los conocemos. Puntos Flotantes (Nmeros con decimales) 2.718281828459045, 3.141592653589793, 3.333333333333333 Los nmeros con decimales tambin los conocemos. En el caso de Python, este utiliza 15 decimales siempre. Largos 2147483648, 5124328762 Nmeros enteros mayores a 2147483647. Complejos 5-2j, 3.5+8.7j Nmeros complejos. En vez de i se utiliza la j por razones de ms fcil lectura. Cadenas hola, me llamo Texto. Este se escribe entre comillas para que no se confunda con las variables. Listas [1,2,3,-5,2.3,a] Colecciones de datos que pueden contener cualquier tipo de dato. Diccionarios {'hey': 5, 'hola': -2} Tipo especial de coleccin que merece ms que una breve explicacin.
>>> print "Hola mundo!" Hola mundo! Universidad de San Carlos de Guatemala Facultad de Ciencias Qumicas y Farmacia Laboratorio de Matemtica V Rony J. Letona 3 Funciones importantes A continuacin se exponen una serie de funciones del lenguaje, su explicacin y un ejemplo de su uso. import Funcin para importar otros mdulos o paquetes que permiten hacer otras cosas con el lenguaje. >>> import math >>> math.sin( math.pi / 2) 1.0 print Funcin para mostrar en pantalla un valor o una cadena. >>> print "El numero pi se puede ver como", math.pi El numero pi se puede ver como 3.14159265359 range(i,j,n) Funcin para crear secuencias. i indica el inicio de la secuencia j indica el final de la secuencia n indica cmo debe de ir en aumento o disminucin >>> range(2,15,2) [2, 4, 6, 8, 10, 12, 14] for i in [a,b,c]: Funcin que permite repetir cierta parte del programa por un nmero definido de veces. Tambin conocida como una funcin para hacer ciclos. >>> for i in range(0,10,2): print i 0 2 4 6 8 def Funcin que le sirve al usuario para definir nuevas funciones. >>> def f(x): return 3 * x - 2
>>> print f(4) 10 return Funcin que devuelve un valor y termina una funcin definida por el usuario. if, else Funciones de condicin. Estas sirven para evaluar qu hacer en el caso de una decisin. >>> x = 5 >>> if x == 4: print "Es 4!" else: print "No es 4!"
No es 4! while Funcin que permite repetir cierta parte del programa por un nmero indefinido de veces. Tambin conocida como una funcin para hacer ciclos. Necesita una condicin para terminar. >>> while x > 0: print x x = x - 1 5 4 3 2 1
Con esto en mente ya se pueden construir programas sencillos.
Universidad de San Carlos de Guatemala Facultad de Ciencias Qumicas y Farmacia Laboratorio de Matemtica V Rony J. Letona 4 Series Ahora ya entrando en materia, veamos cmo se puede utilizar esto para evaluar series. Estudiaremos, para eso, 2 series y a partir de eso ya podremos hacer las dems. Caso 1 ! ! ! ! ! !!!
Este caso es relativamente sencillo. Se trata de una sumatoria de la funcin x 2 +5 de 0 a n. Entonces, debemos descomponer esto en pasos. Primero, la serie completa es una funcin que devuelve un valor en particular. Por ello, lo primero que debemos hacer es definir una funcin nueva. Para esto debemos considerar que la funcin requiere 2 variables. El nmero de donde comienza, y el nmero en que termina. Ahora, estableceremos una variable como control. Para ello le daremos el valor de 0 y a ella le iremos sumando, cada vez, lo que produzca la funcin. Posteriormente, sabemos que la suma de trminos es algo repetitivo; como un ciclo. Para ello utilizaremos la forma de ciclo ms sencilla: for. Notemos que al crear el rango debemos de utilizar un nmero una unidad ms arriba de lo que introducimos, porque el lenguaje nunca llega al ltimo nmero. Finalmente introducimos nuestra funcin matemtica (x 2 +5) y le decimos a la funcin en el programa que devuelva el resultado de la suma. Ahora, a probarla!
>>> def serie(inicio,final): control = 0 for x in range(inicio, final + 1): control += x**2 + 5 return control
>>> serie(0,4) 55 >>> serie(0,5000) 41679192505L Universidad de San Carlos de Guatemala Facultad de Ciencias Qumicas y Farmacia Laboratorio de Matemtica V Rony J. Letona 5 Caso 2 ! ! ! ! ! !!!
Este caso es un poco ms complicado. Se trata de una sumatoria de una funcin ms complicada de 0 a n. Procedamos, entonces, de la misma manera: descomponiendo en pasos. Si ponemos atencin detenidamente, lo que cambia es la funcin matemtica nada ms. La manera en la que se opera la serie no cambia para nada. Por esta razn, esta serie es casi igual a la funcin que habamos hecho previamente. La diferencia est en la expresin matemtica. Cmo se hace entonces? Para simplificarnos un poco el proceso, importaremos el paquete de funciones matemticas bsicas. De esta manera no tendremos que ir a buscar el valor de e para ingresarlo en el programa. Ahora, es solo cuestin de entender que una raz es una potencia fraccionaria. Representamos la funcin matemtica dentro de la sumatoria de la siguiente manera: ! ! ! !!!
Notemos que al colocar la fraccin en la potencia incluimos un punto. Esto no es un error. Es para que el lenguaje no tome a la fraccin como una divisin de enteros, sino como una divisin decimal. Por ltimo nos disponemos a evaluar. Intuitivamente sabemos que la serie converge.
xitos evaluando! Nos vemos para la siguiente! >>> import math >>> def serie(inicio,final): control = 0 for x in range(inicio, final + 1): control += 1 / ( math.e ** x ) ** (1/3.) return control