An open-source MATLAB toolbox for studying non-linear dynamical systems using polynomial optimisation.
Such systems should be expresed as ODE systems, hence PDEs must be truncated to N-dimensional ODE systems before using PONDS.
Below is a quick guide to PONDS, for a more deatiled description and examples refer to the user manual, which can be found inside the ./docs/
folder.
Note: This code is under very active development and will be subject to changes and improvements, so watch this space! We expect that in the future PONDS will be able to go beyond just bounding infinite-time averages.
- Latest release: 1.0
- Release date: 29 August 2019
- Release notes:
- Toolbox UODESys has been included. UODESys interface has been modified to be more user-friendly.
- Functions in
./BoundSys/
folder are design to find bounds on long-time averaged polynomial magnitudes in hydrodynamic-type systems. - Examples have been included for Lorenz attractor and N-dimensional truncations of Kuramoto-Sivashinsky equation.
In order to use PONDS, you will need:
- A working version of YALMIP, the MATLAB optimization modelling software by J. Löfberg.
- Alternatively to YALMIP, SPOTLess can be used. However, YALMIP is yet needed by UODESys.
- A suitable SDP solver. If you are using YALMIP, choices include SeDuMi, SDPT3, SDPA and Mosek (free for users in academia). If you are using SPOTLess you can chose between Mosek and SeDuMi.
PONDS is distributed under the Apache 2.0 licence:
Copyright 2019, M. Lino.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
To install PONDS:
- Download and install YALMIP.
- You can also clone or download SPOTLess from GitHub and install it by running
spotinstall.m
in MATLAB. - Install a semidefinite programming (SDP) solver compatible with YALMIP and/or SPOTLess, such as Mosek or SeDuMi.
- Add folder
lib/
and its subfolders to MATLAB's path by running
>> addpath(genpath(’./lib’))
at MATLAB's command prompt.
To get started with PONDS, please look at the sample scripts on the folder ./examples/
. A description of the examples can be found in the manual available in the ./docs/
folder.
For more information on the main functions in BoundSys()
and BoundUsys()
, please consult the documentation or type
>> help BoundSys
>> help BoundUsys
at MATLAB's command prompt.
Should you use PONDS in your own work, please reference it by citing
- Lino M. Bounds on long-time averaged magnitudes in hydrodynamic-type systems using sum-of-squares of polynomials technique. MSc thesis, Department of Aeronautics, Imperial College London, 2019.
@misc{ponds,
author={Lino M},
year={2019},
title={Bounds on Long-Time Averaged Magnitudes in Hydrodynamic-Type Systems Using Sum-of-Squares of Polynomials Technique},
school={Department of Aeronautics, Imperial College London}
}
- Mario A. Lino Valencia (Department of Aeronautics, Imperial College London, UK. Email: mario.lino-valencia18@imperial.ac.uk)