Algorithm types
FiniteHorizonGramians.AdaptiveExpAndGram — TypeAdaptiveExpAndGram{T,A} <: AbstractExpAndGramAlgorithmAdaptive algorithm for computing the matrix exponential and an associated Gramian.
Constructor:
AdaptiveExpAndGram{T}()
creates an algorithm with coefficients stored in the numeric type T.
FiniteHorizonGramians.ExpAndGram — TypeExpAndGram{T,N,A,B,C} <: AbstractExpAndGramAlgorithmNon-adaptive algorithm of order N for computing the matrix exponential and an associated Gramian.
Constructor:
ExpAndGram{T,N}()
creates an algorithm with coefficients stored in the numeric type T of order N. Current supported values of N are 3, 5, 7, 9, 13.
Create cache
FiniteHorizonGramians.alloc_mem — Methodalloc_mem(A, B, ::ExpAndGram{T,q})Computes a cache for repeated computations with the same input arguments (A, B).
Methods
FiniteHorizonGramians.exp_and_gram — Functionexp_and_gram(
A::AbstractMatrix{T},
B::AbstractVecOrMat{T},
[t::Number],
method::AbstractExpAndGramAlgorithm,
)Compute the matrix exponential exp(A) and the controllability Gramian of (A, B) over the interval [0, t], if t is omitted the unit interval is used.
FiniteHorizonGramians.exp_and_gram_chol — Functionexp_and_gram_chol(
A::AbstractMatrix{T},
B::AbstractVecOrMat{T},
[t::Number],
method::AbstractExpAndGramAlgorithm,
)Computes the matrix exponential of A * t and the controllability Gramian of (A, B) on the interval [0, t], if t is omitted the unit interval is used.
FiniteHorizonGramians.exp_and_gram! — Functionexp_and_gram!(
eA::AbstractMatrix{T},
G::AbstractMatrix{T},
A::AbstractMatrix{T},
B::AbstractVecOrMat{T},
[t::Number],
method::AbstractExpAndGramAlgorithm,
cache = alloc_mem(A, B, method),
)Computes the matrix exponential of A * t and the controllability Gramian of (A, B) on the interval [0, t], if t is omitted the unit interval is used. The result is stored in (eA, G), which are returned.
FiniteHorizonGramians.exp_and_gram_chol! — Functionexp_and_gram_chol!(
eA::AbstractMatrix{T},
U::AbstractMatrix{T},
A::AbstractMatrix{T},
B::AbstractVecOrMat{T},
[t::Number],
method::ExpAndGram{T,q},
[cache = alloc_mem(A, B, method)],
)
exp_and_gram_chol!(
eA::AbstractMatrix{T},
U::AbstractMatrix{T},
A::AbstractMatrix{T},
B::AbstractVecOrMat{T},
[t::Number],
method::AdaptiveExpAndGram,
[cache = nothing],
)Computes the matrix exponential of A * t and the controllability Gramian of (A, B) on the interval [0, t], if t is omitted the unit interval is used. The result is stored in (eA, U), which are returned.
FiniteHorizonGramians.gramcond — Functiongramcond(A, B)Computes an estimate of the condition number of the controllability Gramian of (A, B) on the interval [0, 1] with respect to the 2-norm.