This repository is an attempt to recover the dynamics of objects lying in the solution space of nonlinear systems of coupled ODEs when only a 1-dimensional time series
-
Getting a qualitative understanding and making physical sense of the behavior of the governing systems from which
$x(t)$ is taken. -
Reducing computational complexities as much as possible by using geometrical and statistical criteria on the data to be embedded.
-
Recovering sparse systems of ODEs (whose solutions do not hopefully blow up) describing the results.
This work focuses mainly on the Rossler system with the parameters
-
Mutual Information and False Nearest Neighbors: These criteria are applied on time-delayed versions of
$x(t)$ inMI_FNN_rossler.ipynb, utilizing functions defined infunctions.py. The recovered embedding parameters$(\tau = 17, k = 3)$ are then used to identify the 3 embedding variables$(v_1, v_2, v_3)$ . -
Polynomial Approach: An attempt to relate the original Rossler variables to the embedding variables through a second-order polynomial is explored in
poly_approach.ipynb. -
Autoencoder (AE) Implementation:
-
ae.pycontains an AE object used in different scenarios:-
Supervised Case: Tackled in
supervised_ae.ipynb. -
Known System Case: Tackled in
ae_known_equ.ipynb. -
Unknown System (Reconstruction and 1st comp losses only): Tackled in
unsupervised_ae.ipynb. -
Unknown System (SINDy Losses applied): Tackled in
SINDyAutoencoder.ipynb.
-
Supervised Case: Tackled in
-
-
A modified version of some
latent model discoveryapproach codes is provided in the folderlmd modified, where the encoder, decoder, hypothesis system, and integrator are defined separately and fed to the AE object inmodels.py.This approach is tested on embedding variables with all SINDy Autoencoder losses applied in two cases:
-
Known System: Explored in
rossler_known_equ.ipynb. -
Unknown System: Explored in
rossler_test.ipynb.
-
Known System: Explored in