Tim Mitchell


HEC converging
Diagrammatic representation of Hybrid Expansion-Contraction (HEC), implemented by getStabRadBound, converging to a locally optimal approximation, indicated by the blue point.

ROSTAPACK (pronounced rost-a-pack, with rost rhyming with cost, frost, lost) is a library implemented in MATLAB for computing or approximating robust stability measures of linear dynamical systems with input and output.

The main computational routines included in ROSTAPACK v3.0 are as follows:

The last two routines are intended for large-scale problems, where it would be prohibitively expensive to use exact methods; it is assumed that fast matrix-vector products can be done with the system matrix A (and to a much lesser degree, matrices B, C, and D).

Upcoming Releases

New methods for Kreiss constants, the distance to uncontrollability, sep-lambda, and the numerical radius are slated for future releases of ROSTAPACK. However, prototypes codes are available as supplementary materials of corresponding papers of mine on these topics. If you cannot access these codes, please contact me.

Important News

If you are using specValSet from the v2.0 release, you should upgrade to the latest release. In v2.1, a bug was fixed which could cause specValSet to be abnormally slower in certain configurations. In v2.2, specValSet was made significantly faster via an optimization using Hessenberg factorizations.

How to install and use ROSTAPACK

  1. Download the latest version of ROSTAPACK on GitLab (v3.0).
  2. The only installation task is to add either ROSTAPACK/main or ROSTAPACK/large-scale subfolders as desired to the search path in MATLAB. If you frequently use ROSTAPACK, you may wish to add these to your startup.m file.
  3. When using the large-scale routines, i.e. getStabRadBound and specValSetBound, it is recommended to also download and install the latest version of eigsPlus. However, the ROSTAPACK large-scale routines can also be used without installing eigsPlus by setting

    opts.eig_solver_opts.use_default_eigs = true;

    Note: eigsPlus requires that the md5 and patch commands be available on the system path and callable from within MATLAB. On Windows, one will likely need to install these commands and do some setup work.

  4. A general overview of ROSTAPACK and its routines is given in the USAGE_AND_CITING.pdf document found in the main ROSTAPACK folder.
  5. To read the detailed documentation for the main computational routines, enter: help normTfMaxPeak
    help normTfPeak
    help specValSet
    help specValSetBound
    help getStabRadBound
  6. To read the detailed documentation for their respective user-tunable parameters, enter: help normTfMaxPeakOptions
    help normTfPeakOptions
    help specValSetOptions
    help specValSetBoundOptions
    help getStabRadBoundOptions

Release History


Instructions for citing ROSTAPACK (and the relevant papers describing the underlying algorithms) are given in USAGE_AND_CITING.pdf document found in the main ROSTAPACK folder.


ROSTAPACK is licensed under the GNU Affero General Public License, version 3.

ROSTAPACK contains four minor subroutines that are licensed under the GNU General Public License, version 3. These subroutines, which are identified by their GPL v3 license headers, are code derived from the PSAPSR package, specifically the v1.3-1.4 modified branch.