estimate_rank#
- scipy.linalg.interpolative.estimate_rank(A, eps, rng=None)[source]#
Estimate matrix rank to a specified relative precision using randomized methods.
The matrix A can be given as either a
numpy.ndarray
or ascipy.sparse.linalg.LinearOperator
, with different algorithms used for each case. If A is of typenumpy.ndarray
, then the output rank is typically about 8 higher than the actual numerical rank.- Parameters:
- A
numpy.ndarray
orscipy.sparse.linalg.LinearOperator
Matrix whose rank is to be estimated, given as either a
numpy.ndarray
or ascipy.sparse.linalg.LinearOperator
with the rmatvec method (to apply the matrix adjoint).- epsfloat
Relative error for numerical rank definition.
- rng
numpy.random.Generator
, optional Pseudorandom number generator state. When rng is None, a new
numpy.random.Generator
is created using entropy from the operating system. Types other thannumpy.random.Generator
are passed tonumpy.random.default_rng
to instantiate aGenerator
. Ifrand
isFalse
, the argument is ignored.
- A
- Returns:
- int
Estimated matrix rank.