矩阵分析-线性系统-4 病态系统(ill-conditioned Systems)与条件数(condtion number)
1. 病态系统
系统
的精确解为x=1,y=-1。若对b2=0.067进行轻微的扰动变为0.066,那么精确解变为x=-666,y=834。这个例子深刻说明了病态系统(ill-conditioned systems)的解对于小扰动非常敏感。而这种敏感是由于系统的内在特征,而不是数值求解的结果。这是没有任何数值求解的技巧可有消除这种敏感性。
对于2*2的系统,这种情况可以用图形来清晰说明。两个公式对应两条直线,其交点为解。一个病态系统对应的两条直线是几乎平行的,因此任何微小的变化都会使交点发生巨大变化。

2. 条件数
条件数(Condition Number)用于确定一个线性系统Ax=b在多大程度上能会发生变化(也就是它有多病态,注意不是变态)。其计算公式为
,
可以是任何一种范数
若矩阵A的条件数很大,则其为病态系统。
条件数—衡量奇异程度的量
(1) 在用数值方法计算矩阵的逆时,由于计算中的误差,人们不大可能得到理想的零合理想的全零行,所以矩阵是否奇异,并不是那么绝对的。 (2) 为了评价矩阵接近‘奇异’的程度,采用了‘条件数’(Condition Number)作为常用的衡量指标。它永远大于1。其数值愈接近于1,计算误差愈小。 (3) MATLAB中,条件数用cond(A)计算,它达到10的4次方以上时,求逆的误差就可能相当可观。像现在,条件数达到10的16次方(注:条件数是逆条件数RCOND的倒数),结果是根本不能用的。

浙公网安备 33010602011771号