Norm, Condition Number and Separation Estimations
MatrixEquations.opnorm1 — Function.γ = opnorm1(op)Compute γ, the induced 1-norm of the linear operator op, as the maximum of 1-norm of the columns of the associated m x n matrix $M$ = Matrix(op):
with $M_j$ the j-th column of $M$. This function is not recommended to be used for large order operators.
Examples
julia> A = [-6. -2. 1.; 5. 1. -1; -4. -2. -1.]
3×3 Array{Float64,2}:
-6.0 -2.0 1.0
5.0 1.0 -1.0
-4.0 -2.0 -1.0
julia> opnorm1(lyapop(A))
30.0
julia> opnorm1(invlyapop(A))
3.7666666666666706MatrixEquations.opnorm1est — Function.γ = opnorm1est(op)Compute γ, a lower bound of the 1-norm of the square linear operator op, using reverse communication based computations to evaluate op * x and op' * x. It is expected that in most cases $\gamma > \|op\|_1/10$, which is usually acceptable for estimating the condition numbers of linear operators.
Examples
julia> A = [-6. -2. 1.; 5. 1. -1; -4. -2. -1.]
3×3 Array{Float64,2}:
-6.0 -2.0 1.0
5.0 1.0 -1.0
-4.0 -2.0 -1.0
julia> opnorm1est(lyapop(A))
18.0
julia> opnorm1est(invlyapop(A))
3.76666666666667MatrixEquations.oprcondest — Function.rcond = oprcondest(op, opinv; exact = false)Compute rcond, an estimation of the 1-norm reciprocal condition number of a linear operator op, where opinv is the inverse operator inv(op). The estimate is computed as $\text{rcond} = 1 / (\|op\|_1\|opinv\|_1)$, using estimates of the 1-norm, if exact = false, or computed exact values of the 1-norm, if exact = true. The exact = true option is not recommended for large order operators.
Note: No check is performed to verify that opinv = inv(op).
Examples
julia> A = [-6. -2. 1.; 5. 1. -1; -4. -2. -1.]
3×3 Array{Float64,2}:
-6.0 -2.0 1.0
5.0 1.0 -1.0
-4.0 -2.0 -1.0
julia> oprcondest(lyapop(A),invlyapop(A))
0.014749262536873142
julia> 1/opnorm1est(lyapop(A))/opnorm1est(invlyapop(A))
0.014749262536873142
julia> oprcondest(lyapop(A),invlyapop(A),exact = true)
0.008849557522123885
julia> 1/opnorm1(lyapop(A))/opnorm1(invlyapop(A))
0.008849557522123885 MatrixEquations.opsepest — Function.sep = opsepest(opinv; exact = false)Compute sep, an estimation of the 1-norm separation of a linear operator op, where opinv is the inverse operator inv(op). The estimate is computed as $\text{sep} = 1 / \|opinv\|_1$ , using an estimate of the 1-norm, if exact = false, or the computed exact value of the 1-norm, if exact = true. The exact = true option is not recommended for large order operators.
The separation of the operator op is defined as
An estimate of the reciprocal condition number of op can be computed as $\text{sep}/\|op\|_1$.
Example
julia> A = [-6. -2. 1.; 5. 1. -1; -4. -2. -1.]
3×3 Array{Float64,2}:
-6.0 -2.0 1.0
5.0 1.0 -1.0
-4.0 -2.0 -1.0
julia> opsepest(invlyapop(A))
0.26548672566371656
julia> 1/opnorm1est(invlyapop(A))
0.26548672566371656
julia> opsepest(invlyapop(A),exact = true)
0.26548672566371656
julia> 1/opnorm1(invlyapop(A))
0.26548672566371656