Methods
This section describes systems methods implemented in IntervalMatrices.jl
.
Common functions
IntervalArithmetic.inf
— Function.inf(A::IntervalMatrix{T}) where {T}
Return the infimum of an interval matrix A
, which corresponds to taking the element-wise infimum of A
.
Input
A
– interval matrix
Output
A scalar matrix whose coefficients are the infima of each element in A
.
IntervalArithmetic.sup
— Function.sup(A::IntervalMatrix{T}) where {T}
Return the supremum of an interval matrix A
, which corresponds to taking the element-wise supremum of A
.
Input
A
– interval matrix
Output
A scalar matrix whose coefficients are the suprema of each element in A
.
IntervalArithmetic.mid
— Function.mid(A::IntervalMatrix{T}) where {T}
Return the midpoint of an interval matrix A
, which corresponds to taking the element-wise midpoint of A
.
Input
A
– interval matrix
Output
A scalar matrix whose coefficients are the midpoints of each element in A
.
Base.rand
— Function.rand(::Type{IntervalMatrix}, m::Int=2, n::Int=2;
N=Float64, rng::AbstractRNG=GLOBAL_RNG)
Return a random interval matrix of the given size and numeric type.
Input
IntervalMatrix
– type, used for dispatchm
– (optional, default:2
) number of rowsn
– (optional, default:2
) number of columnsrng
– (optional, default:GLOBAL_RNG
) random-number generator
Output
An interval matrix of size $m × n$ whose coefficients are normally-distributed intervals of type N
with mean 0
and standard deviation 1
.
IntervalMatrices.sample
— Function.sample(A::IntervalMatrix{T}; rng::AbstractRNG=GLOBAL_RNG) where {T}
Return a sample of the given random interval matrix.
Input
A
– interval matrixm
– (optional, default:2
) number of rowsn
– (optional, default:2
) number of columnsrng
– (optional, default:GLOBAL_RNG
) random-number generator
Output
An interval matrix of size $m × n$ whose coefficients are normally-distributed intervals of type N
with mean 0
and standard deviation 1
.
Base.split
— Function.split(A::IntervalMatrix{T}) where {T}
Split an interval matrix $A$ into two scalar matrices $C$ and $S$ such that $A = C + [-S, S]$.
Input
A
– interval matrix
Output
A pair (C, S)
such that the entries of C
are the central points and the entries of S
are the (nonnegative) radii of the intervals in A
.
Base.:∈
— Function.∈(M::AbstractMatrix, A::AbstractIntervalMatrix)
Check whether a concrete matrix is an instance of an interval matrix.
Input
M
– concrete matrixA
– interval matrix
Output
true
iff M
is an instance of A
Algorithm
We check for each entry in M
whether it belongs to the corresponding interval in A
.
Exponentiation
IntervalMatrices.expm_overapproximation
— Function.expm_overapproximation(M::IntervalMatrix{T, Interval{T}}, t, p) where {T}
Overapproximation of the exponential of an interval matrix.
Input
A
– interval matrixt
– non-negative time valuep
– order of the approximation
Algorithm
See Theorem 1 in Reachability Analysis of Linear Systems with Uncertain Parameters and Inputs by M. Althoff, O. Stursberg, M. Buss.
IntervalMatrices.expm_underapproximation
— Function.expm_underapproximation(M::IntervalMatrix{T, Interval{T}}, t, p) where {T}
Overapproximation of the exponential of an interval matrix.
Input
A
– interval matrixt
– non-negative time valuep
– order of the approximation
Algorithm
See Theorem 2 in Reachability Analysis of Linear Systems with Uncertain Parameters and Inputs by M. Althoff, O. Stursberg, M. Buss.
Finite expansions
IntervalMatrices.quadratic_expansion
— Function.quadratic_expansion(A::IntervalMatrix, t)
Exactly compute the quadratic formula $At + \frac{1}{2}A^2t^2$ using interval arithmetics.
Input
A
– interval matrixt
– non-negative time value
Algorithm
See Lemma 1 in Reachability Analysis of Linear Systems with Uncertain Parameters and Inputs by M. Althoff, O. Stursberg, M. Buss.
Hulls
IntervalMatrices.correction_hull
— Function.correction_hull(A::IntervalMatrix{T}, t, p) where {T}
Compute the correction term for the convex hull of a point and its linear map with an interval matrix in order to contain all trajectories of a linear system.
Input
A
– interval matrixt
– non-negative time valuep
– order of the approximation
Output
An interval matrix representing the correction term.
Algorithm
See Theorem 3 in [1].
[1] M. Althoff, O. Stursberg, M. Buss. Reachability Analysis of Linear Systems with Uncertain Parameters and Inputs. CDC 2007.
Norms
LinearAlgebra.opnorm
— Function.opnorm(A::IntervalMatrix, p::Real=Inf)
The matrix norm of an interval matrix.
Input
A
– interval matrixp
– (optional, default:Inf
) the class ofp
-norm
Notes
The matrix $p$-norm of an interval matrix $A$ is defined as
where $\max$ and $|·|$ are taken elementwise.