SJSU Singular Matrix Database

### Tolerance choice in defining the numerical rank

In the selection of matrices for the SJsingular database
our choice of a tolerance in
computation of the numerical rank is max(m,n) eps( norm(A) ). This is the same as the
default tolerance in Matlab's rank command and as discussed
here
this choice is usually a good choice if the errors in the matrix
elements are due to computer arithmetic and if there is a sufficiently large gap
in the singular values around this tolerance.

If the errors in the matrix elements are due to physical measurements then as noted
here it can make sense to choose the
tolerance in the numerical rank to reflect the magnitude of these errors, particularly
if there is a gap in the singular values about the choice of tolerance.

Many of the matrices in the SJsingular database have a well defined numerical
rank with our default tolerance but
there are also matrices in the database where this is not true, for example
in many cases the singular values decay gradually
to zero. For these matrices we have calculated a numerical rank using
our definition but
the tolerance in this definition may not be the best choice
for some applications.

Indeed when the singular values decay gradually to zero the selection of an
appropriate numerical rank can be a challenging problem and usually
additional information, more than the matrix entries, is required to make a good choice.
If one also knows the right hand side b in a
system of equations then "regularization" can be a useful tool. Approaches that
can be successful
to regularization include use of the L-curve, generalized cross validation and certain
iterative methods. An excellent reference to these techniques is
Rank-Deficient and Discrete Ill-Posed Problems,
by Per Christian Hansen. In addition the
Regularization Tools package
has software the implement these techniques.