MatrixEquations.jl: A package for solving Lyapunov, Sylvester and Riccati matrix equations with dense matrices

I would like to announce a new package MatrixEquations.jl for solving linear and quadratic matrix equations which frequently appear in control systems related computations. Solvers are provided for several classes of Lyapunov, Sylvester and Riccati matrix equations with dense coefficient matrices. These solvers aim to perform at a performance level comparable with efficient structure exploiting Fortran implementations, as those available in the Systems and Control Library SLICOT. A comprehensive set of Lyapunov and Sylvester operators has been implemented, using the LinearOperators.jl package, to allow the efficient estimation of condition numbers of these linear operators.

The current version v1.1.1 of the package covers standard and generalized, continuous- and discrete-type equations with real and complex data, in single- or double-precision format. The general solvers of Lyapunov and Sylvester equations rely on a set of specialized solvers for real or complex matrices in appropriate Schur forms. The solvers of Riccati equations employ orthogonal Schur vectors based methods and their extensions to linear matrix pencil based reduction approaches.

This package is still a work in progress, since many functional extensions and performance enhancements are possible. Any cooperation in this respect is highly welcome.

21 Likes