MATLAB中rank函数用法

目录

语法

说明

示例

矩阵的秩

指定秩容差


        rank函数的功能是求取矩阵的秩。

语法

k = rank(A)
k = rank(A,tol)

说明

        k = rank(A) 返回矩阵 A 的秩。

        使用 sprank 确定稀疏矩阵的结构秩。

        k = rank(A,tol) 指定在秩计算中使用另一个容差。秩计算为 A 中大于 tol 的奇异值的个数。

示例

矩阵的秩

        确定矩阵是否满秩。创建一个 3×3 矩阵。第三列中的值是第二列中的值的两倍。

A = [3 2 4; -1 1 2; 9 5 10]
A = 3×3

     3     2     4
    -1     1     2
     9     5    10

计算矩阵的秩。如果矩阵满秩,则秩等于列数,size(A,2)。

rank(A)
ans = 2

size(A,2)
ans = 3

由于列是线性相关的,因此该矩阵秩亏。

指定秩容差

        使用容差计算矩阵的秩。创建一个 4×4 对角矩阵。对角线上有一个等于 1e-15 的小值。

A = [10 0 0 0; 0 25 0 0; 0 0 34 0; 0 0 0 1e-15]
A = 4×4

   10.0000         0         0         0
         0   25.0000         0         0
         0         0   34.0000         0
         0         0         0    0.0000

计算矩阵的秩。

rank(A)
ans = 3

        由于默认算法计算大于 max(size(A))*eps(norm(A)) 的奇异值的个数,因此该矩阵不被视为满秩。对于此矩阵,对角线上的小值被排除,因为它小于容差。

        再次计算矩阵的秩,但指定容差 1e-16。

rank(A,1e-16)
ans = 4

        矩阵中线性无关列的个数是矩阵的。一个矩阵的行秩和列秩始终相等。

        如果一个矩阵的秩是具有相同大小的矩阵能达到的最高秩,则该矩阵为满秩;如果矩阵不具有满秩,则该矩阵为秩亏。秩用于度量矩阵的范围列空间的维度,它是所有列的线性组合的集合。

算法

        rank 使用基于奇异值分解 (SVD) 的方法。SVD 算法相比其他一些方法耗时更多,但它也是最可靠的。

        矩阵 A 的秩计算为大于容差的奇异值的个数。

        默认情况下,容差为 max(size(A))*eps(norm(A))。但是,可以使用命令 rank(A,tol) 指定另一个容差。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值