Saltar al contenido principal

Introducción a Scipy

Introducción a Scipy

En este tutorial, exploraremos los conceptos básicos de Scipy, una poderosa biblioteca de computación científica para Python. Scipy proporciona una amplia gama de funciones para aplicaciones matemáticas, científicas e ingenieriles. Cubriremos los siguientes subtemas:

  1. Instalación: Cómo instalar la biblioteca Scipy en tu sistema.
  2. Importando Scipy: Aprende cómo importar la biblioteca Scipy y sus submódulos.
  3. Álgebra lineal: Realiza operaciones básicas de álgebra lineal utilizando Scipy.
  4. Integración numérica: Comprende cómo integrar funciones numéricamente con Scipy.
  5. Optimización: Utiliza Scipy para problemas de optimización.
  6. Interpolación: Aprende sobre técnicas de interpolación en Scipy.

¡Comencemos!

1. Instalación

Antes de usar Scipy, debes asegurarte de que esté instalado en tu sistema. Abre tu terminal y ejecuta el siguiente comando:

pip install scipy

2. Importando Scipy

Para comenzar a usar Scipy, impórtalo junto con los submódulos específicos que necesites. Aquí tienes un ejemplo de cómo importar Scipy y el submódulo linalg (álgebra lineal):

import scipy
from scipy import linalg

3. Álgebra Lineal

El submódulo de álgebra lineal de Scipy (scipy.linalg) proporciona varias funciones para operaciones básicas de álgebra lineal. Veamos algunos ejemplos:

Inversión de matrices

import numpy as np
from scipy import linalg

A = np.array([[1, 2], [3, 4]])
A_inv = linalg.inv(A)

print(A_inv)

Salida:

[[-2.   1. ]
[ 1.5 -0.5]]

Valores y vectores propios

import numpy as np
from scipy import linalg

A = np.array([[1, 2], [3, 4]])
eigenvalues, eigenvectors = linalg.eig(A)

print("Eigenvalues:", eigenvalues)
print("Eigenvectors:", eigenvectors)

Salida:

Eigenvalues: [-0.37228132+0.j  5.37228132+0.j]
Eigenvectors: [[-0.82456484 -0.41597356]
[ 0.56576746 -0.90937671]]

4. Integración Numérica

El submódulo de integración de Scipy (scipy.integrate) nos permite realizar integración numérica. Veamos un ejemplo utilizando la función quad:

from scipy import integrate

result, error = integrate.quad(lambda x: x**2, 0, 2)

print("Result:", result)
print("Error:", error)

Salida:

Result: 2.666666666666667
Error: 2.960594732333751e-14

5. Optimización

El submódulo de optimización de Scipy (scipy.optimize) proporciona herramientas poderosas para problemas de optimización. Aquí tienes un ejemplo utilizando la función minimize:

from scipy import optimize

def f(x):
return (x[0] - 1)**2 + (x[1] - 2.5)**2

initial_guess = [0, 0]
result = optimize.minimize(f, initial_guess)

print(result)

Salida:

      fun: 4.429571755037639e-22
hess_inv: array([[0.49999999, 0.99999999],
[0.99999999, 2. ]])
jac: array([ 1.33226763e-08, -6.77626358e-08])
message: 'Optimization terminated successfully.'
nfev: 63
nit: 9
njev: 21
status: 0
success: True
x: array([1.00000002, 2.49999994])

6. Interpolación

El submódulo de interpolación de Scipy (scipy.interpolate) nos permite realizar interpolación de datos. Veamos un ejemplo utilizando la función interp1d:

import numpy as np
from scipy import interpolate

x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([0, 2, 4, 6, 8, 10])

f = interpolate.interp1d(x, y)

x_new = np.array([1.5, 3.7])
y_new = f(x_new)

print("Valores interpolados:", y_new)

Salida:

Valores interpolados: [ 3.  7.4]

¡Felicitaciones! Ahora has aprendido los conceptos básicos de Scipy. Experimenta con estos conceptos y explora la amplia funcionalidad proporcionada por Scipy para mejorar aún más tus habilidades de computación científica.