[ANN] FiniteHorizonGramians.jl

I’m pleased to announce FiniteHorizonGramians.jl. Given a pair of matrices (A, B), this package implements an algorithm for computing both the matrix exonential e^{A t}, and the finite horizon controllability Gramian over the interval [0, t], which is given by

G(A t, B \sqrt{t}) = \int_0^t e^{A \tau} B B^* e^{A^* \tau} \mathrm{d} \tau.

Though the major benefit of the package is that it can compute e^{A t} and an upper triangular Cholesky factor, U, of G in a numerically robust way, without forming G as an intermediate step.

In fact, the base algorithm computes (e^{At}, U), and then forms G as a post-processing step (if you want). The implementation is based on the pre-print:

Tony Stillfjord and Filip Tronarp. “Computing the matrix exponential and the Cholesky factor of a related finite horizon Gramian.” arXiv preprint arXiv:2310.13462 (2023).

Please see the README for installation instructions and a basic usage example. You can also browse the documentation for a more complete description of the functionality in the package.

12 Likes