This project studies a 2D spatio-temporal chaotic vector field with strong nonlinearity and high sensitivity to initial conditions, where small perturbations can quickly amplify over time. I build a compact pipeline to reduce the state with POD, train DMD, SINDy, and LSTM predictors, and compare their forecasting performance on a dataset of shape (15000, 64, 64, 2) split into train, validation, and test sets.
DMD is a fast and interpretable linear latent-dynamics model. It usually works well for dominant coherent structures, but its performance can degrade for strongly nonlinear long-horizon prediction. SINDy identifies sparse nonlinear equations in reduced coordinates, which improves physical interpretability, but it is sensitive to noise and to library or threshold settings. LSTM is a flexible sequence model that captures nonlinear temporal dependencies and is often stronger for short- to medium-horizon prediction, while requiring higher training cost and more hyperparameter tuning.
main.py: full analysis pipeline entry pointload_data.py: data loading and frame indexingPOD.py: proper orthogonal decomposition implementationDMD.py: delay-embedded DMD predictorSINDy.py: sparse identification of dynamics in reduced spaceLSTM.py: LSTM-based sequence predictormetrics.py: error and skill metrics (relative error, RMSE, correlation, R2, horizon)plot.py: consolidated publication-style figure generationanalyze_dynamics.py: additional diagnostic script for dynamics behaviordata/vector_64.npy: input dataset (not included; place it indata/)data/PLACEHOLDER.txt: placeholder file for dataset directory
Install dependencies:
pip install -r requirements.txtFrom the project root:
python main.py- Figure:
output/report_figure.png - Text summary:
output/results_summary.txt
