This package implements the data-driven extended dynamic mode decomposition (EDMD) with trainable dictionary [1]. This a generalization of the classical EDMD and is most effective for high dimensional or highly nonlinear problems where a priori choice of dictionary functions are difficult. This package implements iterative algorithms to perform Koopman operator analysis, such as computing eigenfunctions, eigenvalues and modes, using a deep neural network based parameterization of the Koopman dictionary functions.
This project uses python 3.8
. Set up the project for development using the following steps:
- Create a virtual environment
$virtualenv -p python3.8 ~/.virtualenvs/koopman
- Activate the environment
$source ~/.virtualenvs/koopman/bin/activate
- Install requirements
$pip install -r requirements.txt
- Perform editable install for development
$pip install .
- Add this virtual environment to Jupyter by typing
$python -m ipykernel install --user --name=koopman
Generate sphinx documentation:
- Go to docs directory
$cd docs
- Run the build
$sphinx-build -b html source build
- You can generate documents by
Otherwise, open
$make latexpdf
docs/build/index.html
with any browser to see the html.
- Go to folder tests
$cd tests
- Test
- Test dictionaries
$python test_dictionaries.py
- Test solvers
$python test_solvers.py
- Test dictionaries
We use Duffing equation and Van der Pol oscillator as examples to show how to use this package.
Look at examples.
- GUO Yue (NUS)
- LI Qianxiao (NUS)