MATLAB中rcond 函数用法

目录

语法

说明

示例

条件设置错误的矩阵的敏感度

求解单位矩阵的条件


        rcond 函数的功能是用于计算矩阵的倒数条件数(reciprocal condition number)。

语法

C = rcond(A)

说明

        C = rcond(A) 返回 A 的 1-范数条件数倒数估计值。如果 A 的条件设置良好,rcond(A) 接近 1.0。如果 A 的条件设置错误,rcond(A) 接近 0。

示例

条件设置错误的矩阵的敏感度

        检查条件设置错误的矩阵的敏感度。条件设置错误的典型对称正定矩阵是 Hilbert 矩阵。Hilbert 矩阵的元素数是 H(i,j)=1/(i+j−1)。

创建一个 10×10 Hilbert 矩阵。

A = hilb(10);

求解该矩阵的条件数倒数。

C = rcond(A)
C = 2.8286e-14

        条件数倒数很小,因此A的条件设置错误。A的条件对类似线性系统的解有影响。要了解这一点,请将 Ax=b 的解与扰动方程组 Ax=b+0.01 的解进行比较。

        创建一个由 1 组成的列向量并求解 Ax=b。

b = ones(10,1);
x = A\b;

        现在将 b 改变 0.01 并求解扰动方程组。

b1 = b + 0.01;
x1 = A\b1;

        比较这两个解 x 和 x1。

norm(x-x1)
ans = 1.1250e+05

        因为 A 的条件设置错误,所以 b 的细微变化会使 x = A\b 的解出现较大变化(1e5 的量级)。该方程组对扰动敏感。

求解单位矩阵的条件

        了解为何条件数倒数是一个比行列式更精确的奇异性测度。创建一个 5×5 单位矩阵的倍数。

A = eye(5)*0.01;

        该矩阵是满秩的且具有五个相等奇异值,可通过计算 svd(A) 来确认这一点。计算 A 的行列式。

det(A)
ans = 1.0000e-10

        尽管该矩阵的行列式接近零,但实际上 A 的条件设置非常良好且不接近奇异矩阵。

计算 A 的条件数倒数。

rcond(A)
ans = 1

        该矩阵的条件数倒数为 1,因此条件设置非常良好。使用 rcond(A) 或 cond(A) 而非 det(A) 确认矩阵的奇异性。

提示

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值