The GUPTRI algorithm makes use of the
SVD for determining the numerical rank.
Let
be the SVD of an
, where
and
are
unitary and
with
.
Given a tolerance , the numerical rank of the matrix is
the largest
such that
.
This definition does not ensure that the rank is stable in the sense
that a small perturbation relative to
could cause the
matrix to change rank.
The rank is sensitive to perturbations if
is only slightly larger than
.
Given a constant
, the requirement that
should be chosen as the largest number such that
and
is added [121,122].
In practice,
is used; i.e.,
is replaced by
.
If the gap criterion fails,
is also
treated as zero.
This process is repeated until the gap criterion is satisfied.
If this is not possible,
the numerical rank is not defined for the tolerance
parameters
and
.