PySINDy: un paquete Python para descubrir ecuaciones dinámicas a partir de datos

Fuentes: PySINDy: a Python package for sparse identification of nonlinear dynamical systems from data

PySINDy es un paquete de Python dedicado a la identificación de sistemas, cuyo eje es el método SINDy (Sparse Identification of Nonlinear Dynamical systems) presentado por Brunton y colaboradores en 2016, complementado con técnicas afines de la literatura especializada. La identificación de sistemas consiste en inferir, a partir de datos de medición, las ecuaciones que gobiernan un fenómeno. Una vez descubiertas, dichas ecuaciones permiten predecir estados futuros, diseñar entradas de control y abordar el estudio teórico mediante herramientas analíticas, con la ventaja añadida de producir modelos interpretables y generalizables.

El paquete se instala con pip o conda (pip install pysindy), y ofrece módulos opcionales como miosr, sbr y cvxpy para optimizadores alternativos: SR3 con restricciones convexas, MIOSR con búsqueda branch-and-bound bajo restricción L0, y SBR, una regresión bayesiana que devuelve distribuciones posteriores.

Un ejemplo ilustrativo parte de un sistema dinámico desacoplado (x' = -2x, y' = y) con condiciones iniciales x₀ = 3 e y₀ = 0,5. Tras generar los datos, PySINDy ajusta el modelo y recupera de forma exacta las ecuaciones originales, con coeficientes -2,000 y 1,000, lo que evidencia su capacidad para redescubrir la dinámica subyacente. El repositorio incluye tutoriales, documentación en Read the Docs, vídeos prácticos y guías para colaboradores. Se enlazan también proyectos complementarios como deeptime, PyDMD, PySINDyGUI, SEED, SymINDy y derivative, que extienden su funcionalidad hacia análisis de series temporales, descomposición modal dinámica, interfaces gráficas y derivación numérica.