加载中…
个人资料
漂流瓶jz
漂流瓶jz
  • 博客等级:
  • 博客积分:0
  • 博客访问:220,121
  • 关注人气:27
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab cond函数 矩阵的条件数

(2014-04-06 18:22:43)
标签:

it

matlab

函数

数学

分类: matlab基础

Cond(A)称作矩阵A的条件数,为矩阵A的范数与A的逆矩阵的范数的乘积

定义 
在MATLAB中,计算矩阵A的3种条件数的函数是:
(1) cond(A,1) 计算A的1—范数下的条件数。
(2) cond(A)或cond(A,2) 计算A的2—范数数下的条件数。
(3) cond(A,inf) 计算A的 ∞—范数下的条件数。

(关于范数知识请看我博客中关于norm函数的相关介绍)

举例

输入矩阵:A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19];
命令:cond(A,1) 结果:ans = 92.1325
命令:cond(A,2) 结果:ans =48.3117
命令:cond(A,inf) 结果:ans =68.6582


在matlab中,判断矩阵的奇异性一般用函数cond,求矩阵的条件数,即矩阵最大奇异值与最小奇异值的比值。当矩阵的条件数很大时,说明矩阵趋近于奇异

矩阵的条件数

条件数事实上表示了矩阵计算对于误差的敏感性。对于线性方程组Ax=b,如果A的条件数大,b的微小改变就能引起解x较大的改变,数值稳定性差。如果A的条件数小,b有微小的改变,x的改变也很微小,数值稳定性好。它也可以表示b不变,而A有微小改变时,x的变化情况。

比如线性方程组
matlab <wbr>cond函数 <wbr>矩阵的条件数

的解是(x,y)=(2,1),
matlab <wbr>cond函数 <wbr>矩阵的条件数

的解是(x,y)=(-3.999,4.000)

可见b很小的扰动就引起了x很大的变化,这就是A矩阵条件数大的表现。

一个极端的例子,当A奇异时,条件数为无穷,这时即使不改变b,x也可以改变。奇异的本质原因在于矩阵有0特征值,x在对应特征向量的方向上运动不改变Ax的值。如果一个特征值比其它特征值在数量级上小很多,x在对应特征向量方向上很大的移动才能产生b微小的变化,这就解释了为什么这个矩阵为什么会有大的条件数,事实上,正规阵在二范数下的条件数就可以表示成 abs(最大特征值/最小特征值)。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有