libreria numpy

download libreria numpy

of 19

Transcript of libreria numpy

El lenguaje de programacin python 05 de diciembre del 2011INTEGRANTES: BAOS GARCIA HEBERTO ALCANTARA PAZ SIMEYT DE LA CRUZ HERNANDEZ ERICK

Libreras para computo cientico en pythonLos mdulos numpy, scipy, ipython se han convertido en una suite para computo cientico.

numpyLibrera fundamental para hacer comput cienti co con pitn Un poderoso arreglo de dimensin N (ndarray) Mtodos avanzados para seleccionar elementos de los arreglos Librera bsica de algebra lineal Librera bsica de transformada de Fourier Librera avanzada de generacin de nmeros aleatorios Herramientas para extender Numpy con cdigo en C y en Fortran.

numpyLibrera para trabajar con arreglos multidimensionales El arreglo es un conjunto de elementos de un mismo tipo, indexados por un vector de enteros no negativos. Los arreglos se pueden crear de diferentes maneras >>> from numpy import * >>> a = array( [ 10, 20, 30, 40 ] ) >>> a array([10, 20, 30, 40]) >>> b = arange(4) >>> b array([0, 1, 2, 3]) >>> c = linspace(-pi,pi,3) >>> c array([-3.14159265,0.0,3.14159265])

numpy

Se puede construir arreglos a partir de otros arreglos >>> d = a+b**2 >>> d array([10, 21, 34, 49])

numpy

Se puede construir arreglos a partir de otros arreglos >>> d = a+b**2 >>> d array([10, 21, 34, 49])

NumpyLos arreglos pueden tener ms de una dimensin >>> x = ones( (3,4) >>> x array([[1., 1., 1., [1., 1., 1., [1., 1., 1.,) 1.], 1.], 1.]]) >>> x.shape (3, 4)

numpySe puede cambiar la dimensin de un arreglo existente >>> y = arange(12) >>> y array([ 0, 1, 2, 3, 4,5,6,7,8,9, 10, 11]) >>> y.shape = 3,4 >>> y array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])

numpy Es posible operar arreglos de dimensiones diferentes si la operacin tiene sentido (broadcasting) >>> 3*a # multiplica a por 3 array([ 30, 60, 90, 120]) >>> a+y # suma a a cada rengln de y array([[10, 21, 32, 43], [14, 25, 36, 47], [18, 29, 40, 51]])

numpy

Los arreglos se pueden acceder mediante indexing, slicing o iteracin >>> a[2:4] = -7,-3 >>> for i in a: ... print i ... 10 20 -7 -3

numpy

Cuando se accede un arreglo de dos o ms dimensiones mediante indexing, los ndices se separan por comas >>> x[1,2] = 20 >>> x[1,:] array([ 1, 1, 20, 1]) >>> x[0] = a >>> x array([[10, 20, -7, -3], [ 1, 1, 20, 1], [ 1, 1, 1, 1]])

numpy El arreglo (ndarray) es una clase. Los atributos mas importantes de la clase arreglo son ndarray.ndim El nmero de ejes (dimensiones) del arreglo. arreglo.shape Las dimensiones del arreglo. Una tupla de enteros que indica el tamao del arreglo en cada dimensin. ndarray.size El nmero total de elementos del arreglo. ndarray.dtype Un objeto que describe el tipo de elementos del arreglo. Booleanos, otantes, etc. ndarray.itemsize El tamao en bytes de cada elemento del arreglo ndarray.data El bu er que contiene los elementos del arreglo

numpyHay numerosas funciones implementadas como mtodos de la clase array. En general es preferible usar arreglos, pero tambin es posible trabajar con matrices. Aqu muestro un ejemplo... >>> a = random.random((2,3)) >>> a array([[ 0.6903007 , 0.39168346, [ 0.48819875, 0.77188505, 0.16524769], 0.94792155]]) >>> a.sum() 3.4552372100521485 >>> a.min() 0.16524768654743593 >>> a.max() 0.9479215542670073

Ejemplos

Anlisis de error y diferencias nitas Aproximar Cuadratura adaptativa Calcular nmeros de Fibonacci Mapeo logstico

Anlisis de error y diferencias nitasError absoluto y error relativo Error absoluto: valor aproximado Error relativo: error absoluto valor exacto valor aproximado = (valor exacto)(1 + (error relativo)) El valor exacto es desconocido. Nos limitamos a estimar o acotar el error en vez de calcularlo A veces se usa el residuo relativo en vez del error relativo

valor exacto

Anlisis de error y diferencias nitas Error en los datos y error en los clculos Problema tpico: Dados una funcin f : R R y un argumento x R, evaluar f (x) x valor del argumento (exacto) f (x) resultado deseado (exacto) x valor aproximado del argumento (inexacto) f (x ) resultado calculado (inexacto) Error total: f (x ) f (x) = f (x ) f (x ) + f (x ) f (x) error computacional + error en los datos El algoritmo no afecta el error en los datos

Anlisis de error y diferencias nitasError de truncacion y Error de redondeo Error de truncacion: Es la diferencia entre el resultado exacto y el resultado producido por un algoritmo dado usando aritmtica exacta. Debido a aproximaciones tales como truncar series in nitas o terminar sucesiones iterativas antes de que ocurra convergencia. Error de redondeo: Es la diferencia entre el resultado producido por un algoritmo dado usando aritmtica exacta y el resultado producido por el mismo algoritmo usando aritmtica con precision nita Debido a representacin inexacta de nmeros reales y a operaciones aritmticas entre ellos Error computacional: Es la suma de los errores de truncacion y de redondeo (uno de ellos domina)

Anlisis de error y diferencias nitas

Ejemplo: Diferencias nitas El error en la aproximacin por diferencias nitas

f (x)

f (x + h) h

f (x)

exhibe compensacin entre error de redondeo y error de truncacion El error de truncacion esta acotado por M h/2, donde |f (t)| M para t x El error de redondeo esta acotado por 2 /h, donde f (x) El error total se minimiza cuando h 2/M .

Anlisis de error y diferencias nitas Ejemplo: Diferencias nitasf (x) =1 1+x

El error crece cuando h es pequea por el error de redondeo, y crece cuando h es grande por el error de truncacion