Download Manual rápido para evaluación de series en Python
Document related concepts
Transcript
Universidad de San Carlos de Guatemala Facultad de Ciencias Químicas y Farmacia Laboratorio de Matemática V Manual rápido para evaluación de series en Python Breve introducción Python es un lenguaje de programación interpretado con fines científicos, de educación y para hacer programas de uso rápido. 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 definición de variables y manejo de objetos. También 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, además de que existen numerosos manuales y tutoriales en línea para poder aprender a usarlo. En general, es el lenguaje que se está introduciendo al ámbito científico. Algunos conceptos clave Como todo lenguaje de programación, 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 más matemático. Tampoco se utilizan llaves o marcadores de inicio y final a la hora de trabajar con funciones más avanzadas. En vez de eso se utiliza solo el espacio en blanco. Para los que saben de programación, esto resultará un poco extraño al principio. Para los que no saben, disfrútenlo; la experiencia es más agradable de esta manera. Primeros Pasos y Hola Mundo! Para comenzar a dar los primeros pasos, se puede comenzar con operaciones matemáticas sencillas. Estas las puede realizar el intérprete de manera rápida y fácil. Algo un poco más complicado es el uso de cadenas o strings. Estas no son más que texto que se representa entre comillas en el programa. Por ejemplo, una cadena podría ser “Hola, que tal?”. Sin embargo, escribir esto en el programa y dejarlo allí no resulta algo útil. Pedirle al intérprete que devuelva esto en la pantalla es el primer paso para comenzar. Rony J. Letona >>> 3 + 2 5 >>> 7 - 8 -1 >>> 1.2 * 3.87 4.644 >>> x = 5 >>> x 5 >>> -5 > 3 False 1 Universidad de San Carlos de Guatemala Facultad de Ciencias Químicas y Farmacia Laboratorio de Matemática V >>> print "Hola mundo!" Hola mundo! En el caso del programa “Hola mundo!” entramos en contacto, por primera vez, con una función del lenguaje: print. Cada lenguaje tiene una pequeña colección 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 están los enteros, los puntos flotantes (números con decimales), las cadenas, las listas, los diccionarios, etc. Solo con los mencionadas aquí es más que suficiente para hacer programas sencillos. Veamos, pues, un ejemplo de cada uno. Tipo Booleanos Ejemplo True, False Enteros 1, 2, 3, -7, 0, 14, 100 Puntos Flotantes (Números con decimales) Largos Complejos 2.718281828459045, 3.141592653589793, 3.333333333333333 2147483648, 5124328762 5-2j, 3.5+8.7j Cadenas “hola”, “me llamo” Listas [1,2,3,-5,2.3,”a”] Diccionarios {'hey': 5, 'hola': -2} Rony J. Letona Explicación Si se recuerdan de sus tablas de verdad, para esto sirven. Números enteros como todos los conocemos. Los números con decimales también los conocemos. En el caso de Python, este utiliza 15 decimales siempre. Números enteros mayores a 2147483647. Números complejos. En vez de i se utiliza la j por razones de más fácil lectura. Texto. Este se escribe entre comillas para que no se confunda con las variables. Colecciones de datos que pueden contener cualquier tipo de dato. Tipo especial de colección que merece más que una breve explicación. 2 Universidad de San Carlos de Guatemala Facultad de Ciencias Químicas y Farmacia Laboratorio de Matemática V Funciones importantes A continuación se exponen una serie de funciones del lenguaje, su explicación y un ejemplo de su uso. import print range(i,j,n) for i in [a,b,c]: def return if, else while Función para importar otros módulos o paquetes que permiten hacer otras cosas con el lenguaje. Función para mostrar en pantalla un valor o una cadena. Función para crear secuencias. i … indica el inicio de la secuencia j … indica el final de la secuencia n … indica cómo debe de ir en aumento o disminución Función que permite repetir cierta parte del programa por un número definido de veces. También conocida como una función para hacer ciclos. Función que le sirve al usuario para definir nuevas funciones. Función que devuelve un valor y termina una función definida por el usuario. Funciones de condición. Estas sirven para evaluar qué hacer en el caso de una decisión. Función que permite repetir cierta parte del programa por un número indefinido de veces. También conocida como una función para hacer ciclos. Necesita una condición para terminar. >>> import math >>> math.sin( math.pi / 2) 1.0 >>> print "El numero pi se puede ver como", math.pi El numero pi se puede ver como 3.14159265359 >>> range(2,15,2) [2, 4, 6, 8, 10, 12, 14] >>> for i in range(0,10,2): print i 0 2 4 6 8 >>> def f(x): return 3 * x - 2 >>> print f(4) 10 >>> x = 5 >>> if x == 4: print "Es 4!" else: print "No es 4!" No es 4! >>> while x > 0: print x x=x-1 5 4 3 2 1 Con esto en mente ya se pueden construir programas sencillos. Rony J. Letona 3 Universidad de San Carlos de Guatemala Facultad de Ciencias Químicas y Farmacia Laboratorio de Matemática V Series Ahora ya entrando en materia, veamos cómo se puede utilizar esto para evaluar series. Estudiaremos, para eso, 2 series y a partir de eso ya podremos hacer las demás. Caso 1 ! !! + 5 !!! Este caso es relativamente sencillo. Se trata de una sumatoria de la función x2+5 de 0 a n. Entonces, debemos descomponer esto en pasos. Primero, la serie completa es una función que devuelve un valor en particular. Por ello, lo primero que debemos hacer es definir una función nueva. Para esto debemos considerar que la función requiere 2 variables. El número de donde comienza, y el número 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 función. Posteriormente, sabemos que la suma de términos es algo repetitivo; como un ciclo. Para ello utilizaremos la forma de ciclo más sencilla: for. Notemos que al crear el rango debemos de utilizar un número una unidad más arriba de lo que introducimos, porque el lenguaje nunca llega al último número. Finalmente introducimos nuestra función matemática (x2+5) y le decimos a la función en el programa que devuelva el resultado de la suma. >>> 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 Ahora, a probarla! Rony J. Letona 4 Universidad de San Carlos de Guatemala Facultad de Ciencias Químicas y Farmacia Laboratorio de Matemática V Caso 2 ! 1 ! !!! !! Este caso es un poco más complicado. Se trata de una sumatoria de una función más complicada de 0 a n. Procedamos, entonces, de la misma manera: descomponiendo en pasos. Si ponemos atención detenidamente, lo que cambia es la función matemática nada más. La manera en la que se opera la serie no cambia para nada. Por esta razón, esta serie es casi igual a la función que habíamos hecho previamente. La diferencia está en la expresión matemática. ¿Cómo se hace entonces? Para simplificarnos un poco el proceso, importaremos el paquete de funciones matemáticas básicas. De esta manera no tendremos que ir a buscar el valor de e para ingresarlo en el programa. Ahora, es solo cuestión de entender que una raíz es una potencia fraccionaria. Representamos la función matemática dentro de la sumatoria de la siguiente manera: Notemos que al colocar la fracción en la potencia incluimos un punto. Esto no es un error. Es para que el lenguaje no tome a la fracción como una división de enteros, sino como una división decimal. Por último nos disponemos a evaluar. Intuitivamente sabemos que la serie converge. ! !! !/! >>> import math >>> def serie(inicio,final): control = 0 for x in range(inicio, final + 1): control += 1 / ( math.e ** x ) ** (1/3.) return control >>> serie(0,10) 3.437552375770048 >>> serie(0,500) 3.527726473157129 Éxitos evaluando! Nos vemos para la siguiente! Rony J. Letona 5