This project provides a MATLAB implementation of nonlinear Laplacian spectral analysis (NLSA) and related kernel algorithms for feature extraction and prediction of observables of dynamical systems.
- Clone down the project repository:
git clone https://github.com/dg227/NLSA
- Launch MATLAB,
cd
into the project's directory, and add/nlsa
to the MATLAB search path. This can be done by executing the MATLAB command:
addpath(genpath('nlsa'))
- Rectification of variable-speed periodic oscillator using Koopman eigenfunctions:
/examples/circle/demoKoopman.m
- Extraction of an approximately cyclical observable of the Lorenz 63 (L63) chaotic system using kernel integral operators with delays:
/examples/circle/demoNLSA.m
- Kernel analog forecasting of the L63 state vector components:
/examples/l63/demoKAF.m
NLSA implements a MATLAB class nlsaModel
which encodes the attributes of the machine learning procedure to be carried out. This includes:
- Specification of training and test data.
- Delay-coordinate embedding.
- Pairwise distance functions.
- Density estimation for variable-bandwidth kernels.
- Symmetric and non-symmetric Markov kernels.
- Koopman operators.
- Projection and reconstruction of target data.
- Nystrom out-of-sample extension.
Each of the elements above are implemented as MATLAB classes. See /nlsa/classes
for further information and basic documentation.
Results from each stage of the computation are written on disk in a directory tree with (near-) unique names based on the nlsaModel parameters.
- In Windows environments, errors can occur due to long file/directory names.
Research funded by the National Science Foundation (grants DMS-1521775, 1842538, DMS-1854383) and Office of Naval Research (grants N00014-14-1-0150, N00014-16-1-2649, N00014-19-1-2421).