Matrix Canonical Structure (MCS) Toolbox for Matlab
Version 0.7
A Matlab toolbox for computing and representing canonical structure information.
(Matlab is registered trademark of The MathWorks, Inc.)
CONTENTS
- Introduction
- Installation
- StratiGraph Connection
- Compatibility
- Contact
- Developers and collaborators
INTRODUCTION
The Matrix Canonical Structure (MCS) Toolbox for Matlab provides a framework
with data type objects for representing canonical structures and computational
functions related to canonical forms. See further the 'Matrix Canonical
Structure Toolbox User's manual' provided with the toolbox, and [DJK13].
Current version supports canonical structures of:
* Matrices (under similarity, congruence, and *congruence).
* Matrix pencils G-sH (under equivalence, and symmetric and
skew-symmetric under congruence).
* System pencils (under feedback-injection equivalence)
[A B] [I 0]
[C D] - s [0 0]
corresponding to the state-space system
dx/dt = Ax(t) + Bu(t),
y = Cx(t) + Du(t).
* Matrix polynomials P(s) = P_d s^d + ... + P_1 + P_0,
where P_d ~= 0.
The MCS toolbox includes routines for computing the canonical structure
information using staircase algorithms. These are based on the GUPTRI
(Generalized UPper TRIangular) algorithm [DK93] for matrix pencils. The GUPTRI
form reveals the fine canonical structure information of a matrix pencil. For
example, for a linearized model we can compute its canonical structure and then
let StratiGraph determine and visualize nearby structures in the closure
hierarchy.
The toolbox is based on the prototype Matrix Canonical Structure toolbox
described in [J06], however, the majority of the code has been rewritten and
many of the functions are modified or have been removed.
INSTALLATION
Save the code in desired loaction and add it (and subdirectories) to the Matlab
path.
To avoid problems together with StratiGraph, do not put MCS toolbox in a path
which has a blank space in it.
For the function gsylve for solving the generalized Sylvester matrix equation,
the toolbox includes pre-compiled mex-file for MS Windows. If needed or to run
guptri on Linux or macOS, the included source file guptri/private/gsylve.cpp can
be compiled as shown below. It requires to have a compatible C++ compiler and
Matlab R2018a or higher. Depending on OS, run the appropriate call below in
Matlab.
MS Windows:
> mex -llibmwlapack gsylve.cpp
Linux or macOS:
> mex -lmwlapack gsylve.cpp
STRATIGRAPH CONNECTION
There exist interface functions for communicating with the complementary
software StratiGraph. These functions are distributed together with the Matlab
plug-in for StratiGraph. For installation and usage see the README-file in the
StratiGraph distribution.
COMPATIBILITY
For full functionality the toolbox requires Matlab version 9.4 (R2018a) or
later. The requirements for the individual parts are:
Functions Minimum Matlab version
Core 7.6 (R2008a)
Guptri 9.4 (R2018a)
SG interface 8.2 (R2013b)
CONTACT
For questions and comments please contact:
Stefan Johansson, stefanj@cs.umu.se
Department of Computing Science
Umeå University
SE - 901 87 Umeå, Sweden
DEVELOPERS AND COLLABORATORS
MCS Toolbox is developed at the Department of Computing Science,
Umeå University (Sweden) by the following people.
Programming: Stefan Johansson and partly by Pedher Johansson and Andrii Dmytryshyn.
Scientific contribution: Bo Kågström, Erik Elmroth, Pedher Johansson,
Stefan Johansson, and Andrii Dmytryshyn.
A Special thanks to our collaborators:
Alan Edelman (MIT, Massachusetts) and Paul Van Dooren (UCL, Belgium).
REFERENCES
[DK93] J. Demmel and B. Kågström.
The Generalized Schur Decomposition of an Arbitrary Pencil A - lambda B:
Robust Software with Error Bounds and Applications. Part I: Theory and
Algorithms and Part II: Software and Applications.
ACM Trans. Math. Software, Vol.19(2), pp.160-174, 175-201, June 1993.
[DJK13] A. Dmytryshyn, S. Johansson, and B. Kågström.
Codimension computations of congruence orbits of matrices, symmetric
and skew symmetric matrix pencils using Matlab.
Technical Report UMINF 13.18, Department of Computing Science,
Umeå University, Sweden, 2013.
[J06] P. Johansson.
Matrix Canonical Structure Toolbox.
Technical Report UMINF 06.15, Department of Computing Science,
Umeå University, Sweden, 2006.