Low-rank Sylvester ADI Implementations
Description
Low-rank Sylvester ADI Implementations (v2.0)
This package contains implementations of the the low-rank Sylvester ADI iteration (LR-ADI) to approximately solve large-scale Sylvester equations
A*X*C + M*X*B = -f*g'
with n x n matrices A,M, m x m matrices B,C, and f is n x r, g is m x r with r<<min(n,m). M,C can be identity matrices for standard Sylvester equations.
The spectra (A,M), (B,C) should not intersect and have eigenvalues only in the left or right half plane.
The package also provides solvers for some special cases (cross-Gramian Sylv. eqns, Lyapunov eqns. with unsymmetric rhs, discrete-time Lyapunov eqns).
Getting Started
Dependencies
MATLAB R2017b and above with the System Control Toolbox. Or Octave 4.0.0 and above with the Control Package.
The data-files of one demo can be downloaded at mor-wiki.
The M-M.E.S.S. package (https://www.mpi-magdeburg.mpg.de/projects/mess) is not required but can be used to generate some matrices from scratch.
Installation
For using this software, you have to add the folder containing this file to the MATLAB/Octave search path.
Usage
- The main routine is
lr_adi_sylv.mwhich implements the (inexact) low-rank Sylvester ADI iteration. It has several settings to stear the iterative solution process of the arising linear system (which solver/preconditioner, how to set stopping criteria,....). lr_adi_sylv_ex_cpx.mis a much simpler ['exact'] version which only uses direct linear solves with the backslash '\'. These two methods will generate complex low-rank factors, if some of the ADI shift parameters were complex.lr_adi_sylv_ex_real.malso uses direct linear solves only, but generates real low-rank factors (provided the sets of shifts are in a suitable ordering). Note the sign-changes in the equation! This version does not yet support inexact linear solves.- The following modifications handle specials cases of the Sylvester equations. They currently all use direct linear solves only, but generate real low-rank factors (provided the set of shifts is closed under conjugation).
lr_adi_crossgram_r.msolves the cross-Gramian Sylvester equations A*X*M + M*X*A = -f*g',lr_adi_ulyap_r.msolves a Lyapunov equation with unsymmetric right hand side A*X*M' + M*X*A' = f*g'lr_adi_dlyap_r.msolves a discrete-time Lyapunov equation (symmetric Stein equation) A*X*A' - M*X*A' = -f*g'
'demo0.m'shows the basic usage of all the Sylvester ADI versions on an example.'demo1.m'illustrates some more finer settings with respect to the inexact solves.'demo2.m'to'demo4.m'run further examples for (generalized) Sylvester equations.'demo4.m'requires a dataset from https://zenodo.org/records/10017861demo5.mshowcases the LR-ADI solvers for the special cases- The other '*.m' files contain further routines needed to run the main algorithms. This includes routines for basic ADI shift generation strategies and basic Arnoldi-routines for Ritz value generation.
Please see the comments / help texts for 'lr_adi_sylv.m, lr_adi_sylv_ex_clx.m, lr_adi_sylv_ex_real.m' (and the special lr_adi_....m solvers) plus the demos on the usage and possible input parameters. Note the signs of the terms in the different types of Sylvester equations.
For problems defined by real coefficient matrices allowing efficient direct solves, lr_adi_sylv_ex_real.m is the way to go. If not, the inexact version lr_adi_sylv.m might be faster (but might give complex results if the coefficient are unsymmetric). Adequate preconditioners need to be available in that case.
Authors
Patrick Kürschner
- affiliation: University of Applied Sciences Leipzig (HTWK Leipzig)
- email: patrick.kuerschner@htwk-leipzig.de
- orcid: 0000-0002-6114-8821
License
Copyright (C) 2024 Patrick Kürschner
The software is licensed under the BSD-2-Clause License. See COPYING for a copy of the license.
Citation
DOI
The DOI for version 2.0 is 10.5281/zenodo.18472113
BibTeX
@MISC{Kuersch_Sylvester_ADI,
author = {K{\"u}rschner, P.},
title = {Low-rank Sylvester ADI Implementations (v2.0)},
year = 2026,
doi = {10.5281/zenodo.18472113}
}
Acknowledgements
Earlier parts of the development of this work (esp. the exact ADI + its variants) was supported by Max Planck Society during the time of the author's affiliation with the Max Planck Institute for Dynamics of Complex Technical System, Magdeburg, Germany;
Version History
- v1.0: low-rank Sylvester ADI with direct solver (complex and real version) and inexact inner solver (only complex)
- v2.0: minor bugfixes in real lr_adi_sylv. Added solvers for three kinds of special Sylvester equations.
Files
Files
(41.1 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:90f2254cb0cbe2a6a51b6b59089261ef
|
1.6 kB | Download |
|
md5:ed193f2c9f8e979e7d99c5b8ab8c9c62
|
1.1 kB | Download |
|
md5:a70386344b4811628c2135e1283fdabd
|
1.7 kB | Download |
|
md5:facefb396b01c4776f0177d5cba84cb7
|
1.8 kB | Download |
|
md5:8d619e99ef92b6d269d870e71b600e82
|
6.0 kB | Download |
|
md5:6c658d47b8dc986a12f43d24a253712d
|
1.8 MB | Download |
|
md5:d8113b1a0218eaf9e35a6b179e31fef6
|
5.8 kB | Download |
|
md5:62dc3b5375a786247f359abd73f03270
|
7.7 MB | Download |
|
md5:7020f6217a86529a6ecc2210aea431e7
|
5.3 kB | Download |
|
md5:47af847a61bb6e2e29d6951146e2830b
|
24.3 MB | Download |
|
md5:f3d263c7e041c7b42838a01363928907
|
4.6 kB | Download |
|
md5:8d51295eb01349ff655fbcdc026d11de
|
7.3 MB | Download |
|
md5:028199d802486436422652fe6f8812b5
|
5.8 kB | Download |
|
md5:cce89e46de79e6ea10c3fcaa753f7f89
|
2.1 kB | Download |
|
md5:399ae45e181f3a360a31fcd0d7ce2e75
|
4.5 kB | Download |
|
md5:89c1193ef07cc626b58f4e30d414ed00
|
4.3 kB | Download |
|
md5:17479e61820c24c43a5bfa1eaf3b0352
|
12.2 kB | Download |
|
md5:75b7e3d19ea53099e5ec48cd43e5d3a1
|
4.4 kB | Download |
|
md5:42ea5e6921f1ef80bef720bb6ff849ae
|
6.3 kB | Download |
|
md5:2943889a99f38e8ee9b6db237938b231
|
4.4 kB | Download |
|
md5:98398d01237732e66755b667f8110c97
|
815 Bytes | Download |
|
md5:5c41f69caf8e21818330cb3b36bcfa27
|
1.6 kB | Download |
|
md5:56996929512329f2e488d7edf9ae8c80
|
1.6 kB | Download |
|
md5:a18a9c48f4c0ef82b20dc12b3fb9f11c
|
8.5 kB | Download |
|
md5:8701009f8285c2c1443e385e8c3ab210
|
2.6 kB | Download |
Additional details
Related works
- Continues
- Publication: 10.1016/j.camwa.2014.03.004 (DOI)
- Publication: 10.1016/j.cam.2009.08.108 (DOI)
- Is described by
- Publication: 10.1553/etna_vol62s119 (DOI)
Software
- Programming language
- MATLAB
References
- P. Kürschner: INEXACT LINEAR SOLVES IN THE LOW-RANK ADI ITERATION FOR LARGE SYLVESTER EQUATIONS PATRICK KÜRSCHNER, ETNA, 62:119-137 2024