Interval matrices classification

IntervalLinearAlgebra.is_H_matrixMethod
is_H_matrix(A::AbstractMatrix{T}) where {T<:Interval}

Tests whether the square interval matrix A is an H-matrix, by testing that $⟨A⟩^{-1}e>0$, where $e=[1, 1, …, 1]ᵀ$. Note that in practice it tests that a floating point approximation of $⟨A⟩^{-1}e$ satisfies the condition. For more details see section 4.4 of [HOR19].

Examples

julia> A = [2..4 -1..1; -1..1 2..4]
2×2 Matrix{Interval{Float64}}:
  [2, 4]  [-1, 1]
 [-1, 1]   [2, 4]

julia> is_H_matrix(A)
true

julia> A = [2..4 -2..1; -1..2 2..4]
2×2 Matrix{Interval{Float64}}:
  [2, 4]  [-2, 1]
 [-1, 2]   [2, 4]

julia> is_H_matrix(A)
false
source
IntervalLinearAlgebra.is_M_matrixMethod
is_M_matrix(A::AbstractMatrix{T}) where {T<:Interval}

Checks whether the square interval matrix $A$ is an M-matrix, that is a Z-matrix with non-negative inverse. For more details see section 4.2 of [HOR19].

Examples

julia> A = [2..2 -1..0; -1..0 2..2]
2×2 Matrix{Interval{Float64}}:
  [2, 2]  [-1, 0]
 [-1, 0]   [2, 2]

julia> is_M_matrix(A)
true

julia> A = [2..4 -2..1; -1..2 2..4]
2×2 Matrix{Interval{Float64}}:
  [2, 4]  [-2, 1]
 [-1, 2]   [2, 4]

julia> is_M_matrix(A)
false
source
IntervalLinearAlgebra.is_Z_matrixMethod
is_Z_matrix(A::AbstractMatrix{T}) where {T<:Interval}

Checks whether the square interval matrix $A$ is a Z-matrix, that is whether $Aᵢⱼ≤0$ for all $i≠j$. For more details see section 4.2 of [HOR19].

Examples

julia> A = [2..4 -2.. -1; -2.. -1 2..4]
2×2 Matrix{Interval{Float64}}:
   [2, 4]  [-2, -1]
 [-2, -1]    [2, 4]

julia> is_Z_matrix(A)
true

julia> A = [2..4 -2..1; -1..2 2..4]
2×2 Matrix{Interval{Float64}}:
  [2, 4]  [-2, 1]
 [-1, 2]   [2, 4]

julia> is_Z_matrix(A)
false
source
IntervalLinearAlgebra.is_strictly_diagonally_dominantMethod
is_strictly_diagonally_dominant(A::AbstractMatrix{T}) where {T<:Interval}

Checks whether the square interval matrix $A$ of order $n$ is stictly diagonally dominant, that is if $mig(Aᵢᵢ) > ∑_{k ≠ i} mag(Aᵢₖ)$ for $i=1,…,n$. For more details see section 4.5 of [HOR19].

Examples

julia> A = [2..4 -1..1; -1..1 2..4]
2×2 Matrix{Interval{Float64}}:
  [2, 4]  [-1, 1]
 [-1, 1]   [2, 4]

julia> is_strictly_diagonally_dominant(A)
true

julia> A = [2..4 -2..1; -1..2 2..4]
2×2 Matrix{Interval{Float64}}:
  [2, 4]  [-2, 1]
 [-1, 2]   [2, 4]

julia> is_strictly_diagonally_dominant(A)
false
source
IntervalLinearAlgebra.is_strongly_regularMethod
is_strongly_regular(A::AbstractMatrix{T}) where {T<:Interval}

Tests whether the square interval matrix $A$ is strongly regular, i.e. if $A_c^{-1}A$ is an H-matrix, where $A_c$ is the midpoint matrix of $A$`. For more details see section 4.6 of [HOR19].

Examples

julia> A = [2..4 -2..1; -1..2 2..4]
2×2 Matrix{Interval{Float64}}:
  [2, 4]  [-2, 1]
 [-1, 2]   [2, 4]

julia> is_strongly_regular(A)
true

julia> A = [0..2 1..1;-1.. -1 0..2]
2×2 Matrix{Interval{Float64}}:
   [0, 2]  [1, 1]
 [-1, -1]  [0, 2]

julia> is_strongly_regular(A)
false
source