jax.numpy.linalg.matrix_rank#
- jax.numpy.linalg.matrix_rank(M, rtol=None, *, tol=None)[源代码]#
计算矩阵的秩。
JAX 对
numpy.linalg.matrix_rank()的实现。秩是通过奇异值分解 (SVD) 计算的,并由大于指定容差的奇异值数量确定。
- 参数:
M (ArrayLike) – 形状为
(..., N, K)的数组,用于计算其秩。rtol (ArrayLike | None) – 形状为
(...)的可选数组,指定容差。小于 rtol * largest_singular_value 的奇异值被视为零。如果rtol为 None(默认值),则根据输入的浮点精度选择一个合理的默认值。tol (ArrayLike | None) – 为向后兼容而存在的
rtol参数的别名。只能指定 rtol 或 tol 中的一个。
- 返回:
形状为
a.shape[-2]的数组,给出矩阵秩。- 返回类型:
注意事项
对于具有非常小的奇异值或数值上病态的矩阵,秩计算可能不准确。在这种情况下,请考虑调整
rtol参数或使用更专业的秩计算方法。示例
>>> a = jnp.array([[1, 2], ... [3, 4]]) >>> jnp.linalg.matrix_rank(a) Array(2, dtype=int32)
>>> b = jnp.array([[1, 0], # Rank-deficient matrix ... [0, 0]]) >>> jnp.linalg.matrix_rank(b) Array(1, dtype=int32)