Algorithm types

FiniteHorizonGramians.AdaptiveExpAndGram — Type
AdaptiveExpAndGram{T,A} <: AbstractExpAndGramAlgorithm

Adaptive algorithm for computing the matrix exponential and an associated Gramian.

Constructor:

AdaptiveExpAndGram{T}()

creates an algorithm with coefficients stored in the numeric type T.

source
FiniteHorizonGramians.ExpAndGram — Type
ExpAndGram{T,N,A,B,C} <: AbstractExpAndGramAlgorithm

Non-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.

source

Create cache

Methods

FiniteHorizonGramians.exp_and_gram — Function
exp_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.

source
FiniteHorizonGramians.exp_and_gram_chol — Function
exp_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.

source
FiniteHorizonGramians.exp_and_gram! — Function
exp_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.

source
FiniteHorizonGramians.exp_and_gram_chol! — Function
exp_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.

source
FiniteHorizonGramians.gramcond — Function
gramcond(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.

source