You are on page 1of 14

SMB: 2.

Cálculo cientíco con Python
J. Rafael Rodríguez Galván

OSLUCA (Ocina de Software Libre de la Universidad de Cádiz)
III Curso intensivo i-MATH de software libre orientado a ciencias e ingeniería: Software Matemático Básico (SMB)

J. Rafael Rodríguez Galván (OSLUCA) SMB: 2. Cálculo cientíco con Python

i-MATH, Santiago 2010

1 / 14

Cálculo cientíco con Python i-MATH. sin secciones invariantes. Santiago 2010 2 / 14 . http://ciencialibre. texto de portada ni de respaldo. Rafael Rodríguez Galván (OSLUCA) SMB: 2.rediris.forja. Se autoriza la utilización de este documento según la licencia GFDL.es J.(c) Rafael Rodríguez Galván.

Rafael Rodríguez Galván (OSLUCA) SMB: 2. Introducción a Python 1 Introducción a Python J. Santiago 2010 3 / 14 .Sección 1. Cálculo cientíco con Python i-MATH.

Rafael Rodríguez Galván (OSLUCA) SMB: 2.python. Fortran. usando C/C++. Numerosos módulos. Java. Windows. Max).scipy. licencia libre Fácilmente extensible. en particular para cálculo cientíco: Comunidad de usuarios: numerosa y muy activa Bien documentado scipy • http://www.¾Qué es Python? • • • • • • • • Lenguaje de programación claro y sencillo de aprender Elevada productividad (gran velocidad de desarrollo) Múltiples paradigmas: programación orientada a objetos / estructurada / funcional Portable (Linux. Cálculo cientíco con Python i-MATH...org/doc J.org/doc • http://www. ..NET. Santiago 2010 4 / 14 .

.¾Cómo usar Python? • 1 2 Ventanas de comandos $ python $ ipython • Editores: # recomendado ! • • • • • • • spe eric boa-constructor Eclipse (+ python plugin.. i-MATH. Rafael Rodríguez Galván (OSLUCA) SMB: 2. ejemplo: pydev) Emacs Vim . Santiago 2010 5 / 14 J. Cálculo cientíco con Python .

Python como una calculadora (I) • • • • Operadores numéricos: +. " a todos " J.5 5. [tabulador] línea \ • Ctrl-D quit(): salir del entorno Python >> 1+3*1. -. Rafael Rodríguez Galván (OSLUCA) SMB: 2. ←. ** Paréntesis para modicar la preferencia Re-editar órdenes: ↑. ↓.5 >> (2+3) **10 9765625 >> a = 2 >> a = " hola " >> print a . Cálculo cientíco con Python i-MATH. (Mayúsculas +) Para comentarios se usa ó # y para nueva →. /. *. Santiago 2010 6 / 14 .

4 . ( ) Para acceder a sus elementos.2 . Rafael Rodríguez Galván (OSLUCA) SMB: 2.4 . ' hola ') >>> print t (2 . se escribe una secuencia de objetos. -3 .3 . Santiago 2010 7 / 14 . separados por comas y entre paréntesis.Más sobre tuplas • • Para denir tuplas. Cálculo cientíco con Python i-MATH. [ ] >>> t = (2 . ' hola ') >>> t [0] # Primer elemento 2 >>> t [ -1] # Ultimo elemento ' hola ' >>> len (t) # Longitud (n\ ' umero de elementos ) 4 >>> s = 1 .4 # Se pueden omitir par \' entesis >>> s [2]=1 Error : ' tuple ' object doesn 't support assignment J. -3 . se utilizan corchetes.

33] >>> l. >>> l =[2. Cálculo cientíco con Python i-MATH.Listas • • Similares a las tuplas. 55 . pero su contenido es modicable [ ] Se escriben entre corchetes. -7. 55] >>> l. . Rafael Rodríguez Galván (OSLUCA) SMB: 2.. append (33) # A \~ nadir elementos >>> print l [1 . remove (55) # Borrar elementos . 55] >>> l [0] 0. J. etc . -7] >>> l [0]=1 # Podemos modificarlas >>> print l [1 . -7. -7.66663 >>> l [0:2] # Desde 0 hasta (2 -1) [0..66663 . . Santiago 2010 8 / 14 ./3.

.1* i y = x /(1+ x*x) puntos . append ([x . y ]) print puntos • • La función range(N) devuelve la tupla (0...py" el siguiente contenido puntos = [] # Lista vac \ ' ia for i in range (10) : x = 0..py con "$ python puntos..Bucles • • Editar un chero llamado Ejecutarlo con puntos. • comienza a partir de los dos puntos.1. Rafael Rodríguez Galván (OSLUCA) SMB: 2.N) El contenido del bucle for.. : • se delimita mediante el sangrado de las líneas (tabulador) J. Santiago 2010 9 / 14 . Cálculo cientíco con Python i-MATH.

Funciones. Cálculo cientíco con Python i-MATH. Santiago 2010 10 / 14 . Rafael Rodríguez Galván (OSLUCA) SMB: 2. condicionales def valorabs (x): if x >0: return x else : return -x J.

incluye a numpy MatPlotLib Representación de grácas 3D mayavi2 Representación de grácas 2D y 3D (basadas en VTK) >>> import math >>> print ' Seno de 3: '. sin (3) Seno de 3: 0. Rafael Rodríguez Galván (OSLUCA) SMB: 2. Cálculo cientíco con Python Los módulos deben estar en le variable de entorno PYTHONPATH i-MATH.14112000805986721 1 J. math . Santiago 2010 11 / 14 .Módulos adicionales • • Se pueden cambiar módulos adicionales 1 mediante la orden import Existen cientos de módulos y librerías para python • • • • • • string Manejo de cadenas de caracteres time Funciones de medida del tiempo numpy Manejo de arrays para cálculo cientíco scipy Métodos numéricos.

Cálculo cientíco con Python . Rafael Rodríguez Galván (OSLUCA) SMB: 2. [3 .5]) ones (4) eye (5) linspace (a . n =50 i-MATH.Numpy I • • 1 2 3 Numpy aporta a Python tipos de datos array Un array se puede construir a través de una lista >>> from numpy import * # Acceso a todo numpy >>> a = array ( [0 .n) # # # # # Vector de 3 ceros Matriz de ceros Vector de unos Matriz identidad Por defecto . 0. 7 ] ) # 1D >>> b = array ( [[ -1 .b .5 . 0]] ) # 2D • Algunas funciones (de numpy) que devuelven arrays: 1 2 3 4 5 >>> >>> >>> >>> >>> c d e f g = = = = = zeros (3) zeros ([4 . Santiago 2010 12 / 14 J. -3. 1] .

shape (3 . Cálculo cientíco con Python .3) # array aleatorio 4 x3 >>> c = a*a # Producto elemento a elemento >>> d = dot (a .w) # array ( range (3) ) # Producto escalar i-MATH. shape # Orden de b (4 .4) >>> v = arange (3) >>> w = 2* v + 1 >>> inner (v .Numpy: Operaciones con arrays >>> from numpy import * >>> a = ones ([3 . Rafael Rodríguez Galván (OSLUCA) SMB: 2. rand (4 . 3) >>> print transpose (b). Santiago 2010 13 / 14 J.4]) >>> # random es un sub -m \' odulo de numpy >>> b = random .b) # Producto de matrices >>> inverse (d) >>> print b.

Cálculo cientíco con Python i-MATH. from pylab import * x = arange ( -10 .Scipy: algunos módulos numéricos incluidos • • • • linalg: álgebra lineal. resolución de ecuaciones no lineales. mínimos cuadrados. resolución de EDO's optimize: optimización..0.5) y = -x **2 plot (x . spines cúbicos) integrate: integración numérica. Santiago 2010 14 / 14 .. al estilo MATLAB J.. Rafael Rodríguez Galván (OSLUCA) SMB: 2. matrices huecas • sparse: • . simplex. sistemas lineales interpolate: interpolación (lineal..10 .y) show () Podemos especicar las propiedades de la curva.