Python

2,488 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,488
On SlideShare
0
From Embeds
0
Number of Embeds
548
Actions
Shares
0
Downloads
16
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Python

  1. 1. Introduction to Computer Programming A Python-Based Approach for Computational Science Hans Petter Langtangen Simula Research Laboratory and Department of Informatics University of Oslo Resumen del capítulo 3, 4 y5 preparado por: Kenneth Robles Ramos Osvaldo Medina Irizarry Héctor L. Rodríguez Toro Para la clase: MATH-5500 Matemáticas Discretas Avanzadas
  2. 2. Introducción ¿Qué es Python? Python es un leguaje de programación creado por Guido Van Rossum a principios de los años noventa. El nombre del programa está inspirado en un grupo cómico de ingleses “Monty Python”.
  3. 3. Sistemas operativos El programa Python está disponible para varios sistemas operativos entre los cuales se encuentran:  UNIX  Solaris  Linux  Windows
  4. 4. ¿Por qué utilizar Python? Su lenguaje es simple, claro y sencillo. Esto es tan así que se cree que es uno de los mejores programas para empezar a programar. Algunos casos que han tenido éxito con Python son: 1. Google 2. Yahoo 3. NASA 4. Linux
  5. 5. Suponga que quiere calcular la temperatura de grados Celsius a grados Fahrenheit utilizando el programa Python, ¿cómo lo haríamos?
  6. 6. Tomando la fórmula de grados Fahrenheit, ¿cómo hacemos que el programa corra sin escribir el valor de entrada?
  7. 7. La función “Eval” Esta función toma una cadena como argumento y la evalúa como una expresión de Python. Cualquier expresión de texto válida para Python y escrita como cadena puede ser evaluada. La función “Eval” también se puede utilizar con listas y síntaxis de tupla.
  8. 8. La función “String” Escrita una fórmula matemática como una cadena podemos convertir la misma en una función Python. Ejemplo >>> from scitools.StringFunction import StringFunction >>> formula = ’exp(x)*sin(x)’ >>> f = StringFunction(formula)
  9. 9. >>> f(0) 0.0 >>> f(pi) 2.8338239229952166e-15 >>> f(log(1)) 0.0
  10. 10. Los errores más comunes en Python Los tipos de errores más comunes lo son: 1. “Name” Error este surge cuando no hay una variable definida. 2. “Type Error” sucede por un valor en una operación ilegal. 3. “Index Error” este ocurre cuando en una lista de índice sale fuera del campo.
  11. 11. Los errores más comunes en Python Ejemplo: if z < 0: raise ValueError, ’z=%s is negative - cannot do log(z)’ % z
  12. 12. • Las listas se introdujeron en el capítulo 2. Éstas son útiles para almacenar datos tabulados. Al realizar cálculos matemáticos terminamos con un montón de números que si son guardados en listas pueden hacer los programas más lentos. • Por otro lado, las matrices son un objeto menos flexible, pero mucho más eficiente para el almacenamiento. Esto no se verá en Python, pero si en la industria y la ciencia donde los programas de ordenadores corren por semanas y hasta meses.
  13. 13. • Mi lista [2,6.0,`tmp.ps`,[0,1]] • El 2 es int • El 6.0 se conoce como flotante • El `tmp.ps` es una cadena • El [0,1] es una lista • Esta combinación se conoce como una lista heterogénea
  14. 14. • Podemos también eliminar fácilmente los elementos de una lista o añadir nuevos elementos en cualquier parte de ésta. Esta flexibilidad de las listas, en general, es conveniente para el programador, pero en los casos en que los elementos son del mismo tipo y el número de elementos es fijo, las matrices se pueden utilizar en su lugar. Los beneficios que tienen las matrices se enmarcan en la velocidad de los programas ya que demanda menos memoria.
  15. 15. • Algunas cantidades en las matemáticas están asociadas al conjunto de números. Ejemplo de estos son, las coordenadas en un plano. La notación utilizada es (x,y) para el punto. Un punto en el espacio tridimensional se escribe de la forma (x,y,z).
  16. 16. Vectores • En las aplicaciones de las matemáticas hay ciertas cantidades que se determinan por completo mediante su magnitud, por ejemplo;  Longitud  Masa  Área  Temperatura
  17. 17. • Para describir el desplazamiento de un objeto se requiere dos números: la magnitud y la dirección del desplazamiento. Para describir la velocidad de un objeto en movimiento se deben especificar tanto la rapidez como la dirección del recorrido. • Las cantidades como desplazamiento, velocidad, aceleración y fuerza, que implican magnitud y también dirección, se llaman cantidades dirigidas. Una forma de representarlas, matemáticamente, es utilizando vectores.
  18. 18. • Un vector en el plano es un segmento de recta que tiene una dirección asignada. Un vector se representa , como se ve en la figura de la derecha. Este vector se escribe AB. La magnitud o longitud del vector se representa u=AB por I AB I. Para representar los vectores también usaremos letras minúsculas en “Bold”.
  19. 19. • Dos vectores se consideran iguales si tienen igual magnitud y la misma dirección. Así todos los vectores de la derecha son iguales.
  20. 20. • Un vector puede ser representado por un par ordenado. • CD= (x2-x1,y2-y1) = (8-4,-2-6) = (4,-8) Si trasladamos el vector CD, este no cambia de magnitud ni dirección por tal motivo decimos que el CD = (4,8)
  21. 21. Chapter 5 - Sequences and Difference Equations  Secuencia - Serie o sucesión de cosas que guardan entre sí cierta relación y orden. Una secuencia general se escribe como: x0, x1, x2, . . . , xn, . . . , Un ejemplo es la secuencia de los números impares: 1, 3, 5, 7, . . . , 2n + 1, . . . Para esta secuencia, tenemos una fórmula explícita 2n + 1 donde “n” toma los valores 1,2,3,… 21
  22. 22. Podemos escribir esta secuencia de forma más compacta como:  ( xn )n0 con xn = 2n + 1 Otros ejemplos de secuencias infinitas de matemáticas son:  1, 4, 9, 16, 25, . . . , ( xn )n0 , xn = (n + 1)2 1 1 1  1 1, , , ,...( x ) 2 3 4 n n 0 , xn  n 1 22
  23. 23.  Las secuencias anteriores son infinitas porque son generadas para todos los números enteros n≥0. Sin embargo, la mayoría de las secuencias en aplicaciones de la vida real son finitas. Si usted deposita una cantidad de dinero (x0) en un banco a un porciento de interés, obtendrá una cantidad (x1) después de un año, (x2) después de dos años y (xN) después de (N) años. Este proceso resulta en la siguiente secuencia finita: N x0, x1, x2, . . . , xN, ( x ) n n 0 23
  24. 24.  Para algunas secuencias, no es tan fácil establecer una fórmula general para el término (n-ésimo). En cambio, es más fácil expresar una relación entre dos o más números consecutivos. Un ejemplo es la secuencia de los números impares. Esta secuencia puede ser generada de forma alterna por la fórmula: xn+1 = xn + 2 y la secuencia se puede comenzar con una condición inicial donde el valor del primer elemento se especifíca como x0 = 1 24
  25. 25. Ecuaciones de diferencias  Las relaciones, como la que se muestra en la pantalla anterior, entre elementos consecutivos en una secuencia se llaman relaciones recurrentes o ecuaciones de diferencias . Resolver una ecuación de diferencia puede ser bastante difícil con matemáticas, pero es casi trivial resolverla en una computadora. Es por esto que las ecuaciones de diferencia son muy útiles para los programas de computadoras y este capítulo se dedica a este tópico. 25
  26. 26. Modelos matemáticos basados en ecuaciones de diferencia  El objetivo de la ciencia es explicar los fenómenos complejos. Estos fenómenos pueden ser naturales como la fotosíntesis, sociales como la emigración, económicos, mecánicos, eléctricos, etc.  Para comprender un fenómeno podemos crear un modelo cuyas características y comportamiento copien fielmente las características y comportamiento del fenómeno real.  En matemáticas, un modelo consiste de un conjunto datos y ecuaciones que al resolverlas nos muestran o predicen el comportamiento del fenómeno.  Las ecuaciones de diferencia aparecen continuamente en muchos modelos y son fáciles de programar. 26
  27. 27. Series de Taylor como ecuaciones de diferencia Consideremos el siguiente sistema de dos ecuaciones de diferencia:  x    an 1 , an  n  a0 = 1 en = en−1 + an , e0 = 1 Podemos comenzar a buscar la solución:  x  x e1 = e0 + a1 = 1 +  a0 = 1 +   1 = 1 + x 1 1  x  x  x  a e2 = e1+a2 = (1+x) +  a1 = (1 + x) +     0 2  2  1  2  x  x    e2 = (1 + x) +    1 = 1 + x +  x   2   2  1    27
  28. 28.  2 e3 = e2+ a3 = 1 + x +  x +  2  a3    2   = 1+x x + 2  + x  a2 = 1 + x  2 + x   + x  x   a    3   2   3  2  1           2  x     x  x =1+x +  x  + 3  2    2  1 a  0        3  2  x  e3 = 1 + x + x   2  +  3 2       1  2   3  e3 = 1  x  +  x  + x  +  1   2 1   3  2 1        28
  29. 29. La serie anterior es la serie de Taylor para (e x ) n x  x e n  0 n! 0 1 2 3 x  x  x  x    ,    x   x e 0! 1! 2! 3!  La secuencia (an ) genera los términos recursivamente, y la secuencia (en ) suma los términos. x a n    a n 1 n en = en−1 + an 29
  30. 30. x = 1, N = 9 El Programa n an_prev en_prev en an 1 1.0 0.0 1.0 1.0 def exp_diffeq(x, N): 1.0 1.0 n=1 2 2.0 1/2 an_prev = 1.0 # a_0 1/2 2.0 3 2.5 1/6 en_prev = 0.0 # e_0 1/6 2.5 while n <= N: 4 2.6667 1/24 en = en_prev + an_prev 1/24 2.6667 5 2.7083 1/120 an = an_prev*x/n 1/120 2.7083 en_prev = en 6 2.7167 1/720 1/720 2.7167 an_prev = an 7 2.7181 1/5040 n += 1 1/5040 2.7181 return en 8 2.71825 1/40320 1/40320 2.71825 9 2.71828 1/362880 30
  31. 31. Referencias: Langtangen, P. (2008). Introduction to Computer Programming A Python-Based Approach for Computational Science. González, R. Pytho para todos. Recuperado el 14 de agosto en http://mundogeek.net/tutorial-python/ Recuperado el 20 de agosto en http://www.youtube.com/watch?v=x9M3R6igH2E&p=D21DD37136A73127&in dex=15 Recuperado el 25 de agosto en http://www.youtube.com/watch?v=x9M3R6igH2E&p=D21DD37136A73127&in dex=16 Recuperado el 2 de septiembre en http://www.youtube.com/watch?v=x9M3R6igH2E&p=D21DD37136A73127&in dex=17
  32. 32. 32

×