首页 > 代码库 > 病态矩阵与条件数

病态矩阵与条件数

作者:桂。

时间:2017-06-03  11:06:45

链接:http://www.cnblogs.com/xingshansi/p/6936740.html 


一、病态矩阵

  A-问题描述

现在有线性系统: Ax = b, 解方程

技术分享

很容易得到解为: x1 = -100, x2 = -200. 如果在样本采集时存在一个微小的误差,比如,将 A 矩阵的系数 400 改变成 401:

技术分享

则得到一个截然不同的解: x1 = 40000, x2 = 79800.

当解集 x 对 A 和 b 的系数高度敏感,那么这样的方程组就是病态的 (ill-conditioned).

病态矩阵的详细分析,感兴趣可以点击这里。

  B-现象分析

为什么会出现上面的问题?主要是两个向量可以互相近似线性表达(如[401 -201]与[-800 401]),从而另一项近似残差项,这样微小的扰动带来大的扰动。

二、条件数

如何判断矩阵是不是ill-conditioned matrix?条件数是一个思路。

虽然是近似,直接用秩判断是无效的,除非严格线性:rank.

因此可以有两个思路:rcond(A)或者min(svd(A)).  以rcond为例:

if( rcond(A) < 1e-12 )    % This matrix doesn‘t look goodend

 

参考

http://www.cnblogs.com/daniel-D/p/3219802.html

病态矩阵与条件数