SJSU Singular Matrix Database

### Numerically singular matrices

Matrices in this collection are numerically singular in the sense
that for an m by n matrix A in the collection
- the numerical rank of A is less than min(m,n)
- A has at least one small singular
value and
- A is very ill conditioned

where
- the numerical rank is defined as the number of calculated singular values of
an m by n matrix A that are greater than
max(m,n) * eps(norm(A)) where norm(A) indicates
the Euclidean norm of A and eps( norm(A) ) is approximately 2.2 x 10
^{-16}
times norm(A);
- by "small singular value" we mean a calculated singular value is less
than or equal to max(m,n) * eps(norm(A));
- and by "very ill conditioned" we mean the calculated condition number
of A is at least
1 / [ eps * max(m,n) ] where eps = 2
^{-52} ≅ 2.2 x 10 ^{-16}.

The above choice of
numerical rank uses a tolerance max(m,n) * eps(norm(A)). This is the default
tolerance in using Matlab's rank(A) and is often a good choice when the errors in the
matrix are due to computer arithmetic.

To calculate the numerical rank using
other tolerances one can try spnrank,
SJrank or Matlab's rank command. The routine
spnrank calculates the numerical rank of
a sparse matrix, SJrank calculates the numerical
rank using precomputed singular values for problems in this database and Matlab's
rank command calculates the numerical rank of a dense matrix.

For all the matrices in this database we include pictures illustrating some or all
of the singular value spectrum. Pictures of the singular value spectrum are useful
to identify how the numerical rank may change for different choices of tolerance and
also to identify whether the calculated numerical rank is "well defined"
(see this link). The routine
SJplot is also of use to picture the
singular value spectrums for matrices in this database.

The difference between numerical rank and the rank
used in theoretical mathematics is briefly discussed
here .

The "structural rank" and its relation to the numerical rank and the rank
used in theoretical mathematics is briefly discussed
here .

The calculated numerical rank depends, potentially, on the accuracy of the calculate singular
values which is briefly discussed here .

A brief discussion of the selection of the tolerance in calculating numerical rank
is here .