Skip to content

Data-driven construction of auxuliary functions for dynamical system analysis

Notifications You must be signed in to change notification settings

DCN-FAU-AvH/eDMD-sos

Repository files navigation

Data-Driven Polynomial Optimization for Dynamical Systems

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).

Paper Abstract

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.

Required MATLAB Packages

All scripts require YALMIP and MOSEK to run. Both packages can be download for free at

Repository Contents

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 functions chebsdp_1d.m, chebsdp_1d_locball.m, and edmd_with_thresholding.m are all called by logistic_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.

About

Data-driven construction of auxuliary functions for dynamical system analysis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages