MATLAB中cond函数用法

目录

语法

说明

示例

矩阵的条件数

1-范数条件数


        cond函数的功能是返回逆运算的条件数。

语法

C = cond(A)
C = cond(A,p)

说明

        C = cond(A) 返回 2-范数逆运算的条件数,等于 A 的最大奇异值与最小奇异值之比。

        C = cond(A,p) 返回 p-范数条件数,其中 p 可以是 1、2、Inf 或 'fro'。

示例

矩阵的条件数

        计算矩阵的条件数并检查逆运算的敏感度。创建一个 2×2 矩阵。

A = [4.1 2.8;
     9.7 6.6];

        计算 A 的 2-范数条件数。

C = cond(A)
C = 1.6230e+03

        由于 A 的条件数远大于 1,因此矩阵对逆运算非常敏感。计算 A 的逆矩阵,对 A 的第二行进行小小的改动,然后再次进行逆运算。

invA = inv(A)
invA = 2×2

  -66.0000   28.0000
   97.0000  -41.0000

A2 = [4.1    2.8; 
      9.671  6.608]
A2 = 2×2

    4.1000    2.8000
    9.6710    6.6080

invA2 = inv(A2)
invA2 = 2×2

  472.0000 -200.0000
 -690.7857  292.8571

        结果表明,对A进行的小小改动可能完全改变逆运算的结果。

1-范数条件数

        计算矩阵的 1-范数条件数。创建一个 3×3 矩阵。

A = [1 0 -2;
     3 4  6;
    -1 5  7];

        计算 A 的 1-范数条件数。m×n 矩阵的 1-范数条件数的值为

其中 1-范数是矩阵的最大绝对列之和,由以下公式计算得出:

C = cond(A,1)
C = 18.0000

        对于此矩阵,条件数不是太大,因此矩阵对逆运算不是特别敏感。

逆运算的条件数

        矩阵和计算任务的条件数用于衡量解算过程中答案对输入数据变化和舍入误差的敏感程度。

        矩阵的逆运算的条件数用于测量线性方程组的解对数据错误的敏感程度。它指示矩阵求逆结果和线性方程解的精度。例如,一个方阵的 2-范数条件数是

        在这种情况下,大的条件数表示系数矩阵 A 中的微小变化会导致线性方程 Ax = b 和 xA = b 的输出 b 发生较大变化。极端情况是 A 因过于病态而成为奇异矩阵(无限条件数),此时它没有逆矩阵,而线性方程没有唯一解。

提示

  • 与 cond 相比,rcond 作为估计矩阵条件的方法更高效,但不够稳定。

算法

cond 的算法分为三部分:

  • 如果 p = 2,则 cond 使用由 svd 提供的奇异值分解来计算最大奇异值和最小奇异值之比。

  • 如果 p = 1、Inf 或 'fro',则 cond 使用输入矩阵及其逆矩阵的适当范数通过 norm(A,p) * norm(inv(A),p) 计算条件数。

  • 如果输入矩阵是稀疏矩阵,cond 将忽略任何指定的 p 值并调用 condest。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值