# numericalRank -- numerical rank of a matrix

## Synopsis

• Usage:
r = numericalRank M
B = isFullNumericalRank M
• Inputs:
• M, , a matrix with real or complex entries
• Optional inputs:
• Threshold => ..., default value .0001
• Outputs:

## Description

numericalRank finds an approximate rank of the matrix M.

isFullNumericalRank = M is _not_ rank-deficient.

Let \sigma_1,...,\sigma_n be the singular values of M.

If Threshold is >1, then to establish numerical rank we look for the first large gap between two consecutive singular values. The gap between \sigma_i and \sigma_{i+1} is large if \sigma_i/\sigma_{i+1} > Threshold.

If Threshold is <=1, then the rank equals the number of singular values larger then Threshold.

 i1 : options numericalRank o1 = OptionTable{Threshold => .0001} o1 : OptionTable i2 : numericalRank matrix {{2,1},{0,0.001}} o2 = 2 i3 : numericalRank matrix {{2,1},{0,0.0001}} o3 = 1

## Caveat

We assume \sigma_0=1 above.