Measure for how singular a square matrix is in the range [0,1]

125 Views Asked by At

I am interested in estimating how close a square matrix is to being singular such that I can compute a value $s \in [0,1]$ where $s=1$ would mean the matrix is singular, and $s=0$ means it is as far from singular as possible. Can this be a well-defined?

This post indicates a distance-to-singular measure can be defined as $||A||/\kappa(A)$ for some matrix $A$ where $\kappa(A)$ is the condition number of $A$. Are there meaningful bounds I can place on this quantity such that I can normalize to the range $[0,1]$?

Is there another way to achieve this? I am only looking for a heuristic value in the range $[0,1]$ that can informatively say whether a matrix is close to being singular.

1

There are 1 best solutions below

0
On BEST ANSWER

Note the following

For a given matrix $A \in \mathbb{C}^{m \times n} $

$$ \kappa(A) = \frac{\sigma_{max}}{\sigma_{min}}$$

$$ \|A\| = \max_{1 \leq i \leq n } |\sigma_{i}| = \sigma_{max}$$

Then we have your distance to singularity measure is actually

$$ \frac{\| A\|}{\kappa(A)} =\frac{\sigma_{max}}{\frac{\sigma_{max}}{\sigma_{min}}} = \sigma_{min}$$

I'm not certain if you can construct any meaningful bounds unless you knew something about the way the matrix was constructed. For instance.

function A = randommatrix(m,n,kappa)
% Returns an m x n matrix with condition number kappa,
% exponentially graded singular values
k = min(m,n);
[Q1,R1] = qr(randn(m,m));
[Q2,R2] = qr(randn(n,n));
% Originally thought we would evaluate for any m x n matrix, so if not square took minimum dimension
U = Q1(1:m,1:k);
V = Q2(1:k,1:n);
j=k-1;
% Take k-1 root of condition number to get number for grade
l = kappa^(1/j);
% Construct the singular value matrix, l^0 = 1, then l^(k-1)= 1/kappa 
S = diag(l.^(0:-1:-j));

A = U*S*V;


end

This generates a random matrix with exponentially graded singular values...you could talk about the