
The provided code is meant to reproduce the results in the publication:
"Improved identification accuracy in equation learning via comprehensive $\boldsymbol{R^2}$-elimination and Bayesian model selection", TMLR (2023)
The code is work and progress, has not been tested other than for the reproduction of the results, and will not be maintained.
No guarantee for correctness or any form of warranty is given.
Date: 18 November 2023

required packages:

numpy
scipy
sympy
statsmodels
matplotlib
scikit-learn
tqdm
ipywidgets

PySINDy from source:
https://github.com/dynamicslab/pysindy
git clone https://github.com/dynamicslab/pysindy.git
cd pysindy/
pip install .
pip install pysindy[miosr]
pip install pysindy[cvxpy]

gurobi:
get free academic licence from website:
https://www.gurobi.com/features/academic-named-user-license/
(click Free Academic License, register with institute email, and command for grbgetkey is shown)
the grbgetkey programme can be downloaded here:
https://support.gurobi.com/hc/en-us/articles/360059842732
(unpack, log in from academic institute (or use VPN), go into folder on command line, run with ./grbgetkey, paste key shown on gurobi website)


 - comprehensive search methods introduced in the paper are in 'chs.py' as class 'modsel'
 - sindy functions are imported via 'sindy_solvers.py'
 - artificial data is generated using functions in 'datagen.py'
 - the results of the three simulation studies are reproduced in the following scripts
    -- 'chs_polys.py' for random polynomials
    -- 'chs_lorenz.py' for Lorenz model
    -- 'chs_rabi.py' for Rabinovich-Fabrikant equations
 - each of the three simulation study scripts stores intermediate results to file and loads those when available at runtime
 - each simulation study script has a variable 'silent' that can be set to True in order to suppress details about the computations


contact: 
Daniel Nickelsen
danieln@aims.ac.za



