This repository contains MATLAB scripts to reproduce the data and figures from Auxiliary Functions as Koopman Observables: Data-Driven Polynomial Optimization for Dynamical Systems by Jason J. Bramburger and Giovanni Fantuzzi (2023).
We present a flexible data-driven method for dynamical system analysis that does not require explicit model discovery. The method is rooted in well-established techniques for approximating the Koopman operator from data and is implemented as a semidefinite program that can be solved numerically. Furthermore, the method is agnostic of whether data is generated through a deterministic or stochastic process, so its implementation requires no prior adjustments by the user to accommodate these different scenarios. Rigorous convergence results justify the applicability of the method, while also extending and uniting similar results from across the literature. Examples on discovering Lyapunov functions, performing ergodic optimization, and bounding extrema over attractors for both deterministic and stochastic dynamics exemplify these convergence results and demonstrate the performance of the method.
All scripts require YALMIP and MOSEK to run. Both packages can be download for free at
This repository contains MATLAB script to reproduce the results for the examples in Section 6 of the paper. Precisely, the scripts perform the following tasks:
lyapunov_function.m
discovers a Lyapunov function from data and corresponds to the example in Section 6.1.VdP_bounds.m
provides upper and lower bounds on the long-time average of the energy for the Van der Pol oscillator. This script accompanies the example in Section 6.2 and, in particular, is used to generate the data in Table 1.logistic_bounds.m
provides upper and lower bounds on the long-time average of the state-space observable, x, for the random logistic map. Chebyshev basis functions are used to improve numerical conditioning and therefore one must include the ChebFun package (see above for download link). The MATLAB functionschebsdp_1d.m
,chebsdp_1d_locball.m
, andedmd_with_thresholding.m
are all called bylogistic_bounds.m
to perform specific tasks, primarily related to the Chebyshev basis functions. This script accompanies the example in Section 6.3 and, in particular, is used to generate the data in Table 2.thomas_bounds.m
provides pointwise bounds on Thomas' cyclically symmetric attractor using a data-driven implementation of the methods of Goluskin (2020). This script corresponds to the example in Section 6.4 and is used to produce the data in Table 3 of the manuscript.