Está en la página 1de 14

Scipy

Numpy – Algebra Lineal

El submódulo numpy.linalg implementa el álgebra


lineal: resolución de sistemas lineales,
descomposición en valores singulares, etc.
Sin embargo, esto no garantiza que sea compilado
utilizando rutinas eficientes, y por lo tanto se
recomienda el uso de scipy.linalg.
Scipy – Scientific Python

• El paquete scipy contiene varios sub módulos


dedicados a problemas de computación
científica.
• Scipy es el paquete núcleo para rutinas
científicas en Python; opera de manera eficiente
los arreglos numpy, por tanto numpy y scipy
trabajan mano a mano
• import numpy as np
• from scipy import linalg
Scipy – sub módulos
scipy.cluster Vector quantization / Kmeans
scipy.constants Constantes físicas y matemáticas
scipy.fftpack Transformadas de Fourier
scipy.integrate Rutinas para integración
scipy.interpolate Interpolación
scipy.io Entrada y salida
scipy.linalg Rutinas para algebra lineal
scipy.ndimage n-dimensional image package
scipy.odr Orthogonal distance regression
scipy.optimize Optimización
scipy.signal Procesamiento de señales
scipy.sparse Matrices dispersas
scipy.spatial Estructuras de datos espaciales y algoritmos
scipy.special Funciones matemáticas especiales
scipy.stats Estadística
Scipy – Algebra Lineal
• Determinante de una matriz cuadrada
>>> import numpy as np
>>> from scipy import linalg
>>> arr = np.array([[1, 2],
... [3, 4]])
>>> linalg.det(arr) # calcula el determinante
-2.0
>>> arr = np.array([[3, 2],
... [6, 4]])
>>> linalg.det(arr)
0.0
>>> linalg.det(np.ones((3, 4)))
Traceback (most recent call last):
...
ValueError: expected square matrix
Scipy – Algebra Lineal
• Inversa de una matriz cuadrada
>>> arr = np.array([[1, 2],
... [3, 4]])
>>> iarr = linalg.inv(arr) # calcula la inversa
>>> iarr
array([[-2. , 1. ],
[ 1.5, -0.5]])
>>> np.allclose(np.dot(arr, iarr), np.eye(2))
True
>>> arr = np.array([[3, 2], # arr con determinante 0
... [6, 4]])
>>> linalg.inv(arr)
Traceback (most recent call last):
...
LinAlgError: singular matrix
Scipy – Algebra Lineal
• Solución de un Sistema de ecuaciones A*x=b
>>> import scipy.linalg as la
b es vector fila: b es vector columna:
>>>A = np.array([[1,1], >>> A = np.array([[1,1],[1,-1]])
[1,-1]]) >>>b2= np.array([2,0]).reshape(2,1)
>>>print(A) >>>x2 = la.solve(A,b2)
[[ 1 1] >>>print(x2)
[ 1 -1]] [[1.]
>>>b1 = np.array([2,0]) [1.]]
>>>print(b1)
[2 0]
>>>x1 = la.solve(A,b1) Sistema de ecuaciones:
>>>print(x1) x+y=2
[1. 1.] x–y=0
Matpolib - pylab
Matplotlib – pylab gráficos

Matplotlib es el paquete de Python más utilizado para


gráficos 2D. Proporciona una manera muy rápida de
visualizar datos y figuras con calidad de publicación
en varios formatos.
pylab proporciona una interfaz orientada a objetos a la
biblioteca de trazado Matplotlib cercano a Matlab(TM).
Matplotlib viene con un conjunto de valores
predeterminados que permiten la personalización de
todos los tipos de propiedades: tamaño de figura y
dpi, grosor de línea, color y estilo, ejes , ejes y
propiedades de cuadrícula, propiedades de texto y
fuente, etc.
Gráfica simple
>>> import pylab as pl
>>> import numpy as np
# X es un arreglo numpy con 256 valores que van
desde -π a +π (incluido).
>>>X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
# C es la función coseno (256 valores) y S es la
función seno (256 valores).
>>> C, S = np.cos(X), np.sin(X)
# Graficar:
>>> pl.plot(X, C)
>>> pl.plot(X, S)
# Mostrar la gráfica:
>>> pl.show()
Configurar una figura

import pylab as pl
import numpy as np
def grafico1():
# Crear figura: 8x6 puntos de tamaño, 80 puntos por pulgada
pl.figure(figsize=(8, 6), dpi=80)
# Crear una nueva subgráfica en una rejilla de 1x1
pl.subplot(1, 1, 1)
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)
C, S = np.cos(X), np.sin(X)
# Graficar coseno con línea continua azul de 1 pixel de grosor
pl.plot(X, C, color="blue", linewidth=1.0, linestyle="-")
# Graficar seno con línea continua verde de 1 pixel de grosor
pl.plot(X, S, color="green", linewidth=1.0, linestyle="-")
Configurar una figura

# Establecer límites del eje x


pl.xlim(-4.0, 4.0)
# Ticks en x
pl.xticks(np.linspace(-4, 4, 9, endpoint=True))
# Establecer límites del eje y
pl.ylim(-1.0, 1.0)
# Ticks en y
pl.yticks(np.linspace(-1, 1, 5, endpoint=True))
# Guardar la figura usando 72 puntos por pulgada
# savefig("exercice_2.png", dpi=72)
# Mostrar resultado en pantalla
pl.show()
PROBLEMAS

1. Definir funciones para los ejemplos vistos de Numpy (cada


función debe incluir un grupo de ejemplos relacionados).
2. Definir funciones para los ejemplos vistos de Scipy.
3. Definir funciones para los ejemplos vistos de Matpolib.
4. Resolver el Sistema de ecuaciones:
20x + y – z = 15
-x + 15 y + z = 10
x + y + 30 z = 25
5. Graficar las funciones f(x) = x^3 – 3x + 1, g(x) = tg(x)
GRACIAS

También podría gustarte