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 |
The object numericalRank is a method function with options.