Conditional Number of Matrix
In This post, I will comb the inference of the conditional number of Matrix
WHAT
不得不说,咱们语言文化的博大精深。所谓“千里之堤,溃于蚁穴”,则正是条件数的表示,旨在对某件事物进行轻微的扰动,那么其会产生巨大的影响。
Defenition
所以对于方程组
针对上述定义,我们引出两个问题
所谓轻微的扰动,并不是指整个矩阵中所有元素变化量的大小,而是说变化元素的个数。通常,我们用
来表示仅在
下面进行条件数的推导。
Inference of the Conditional Number
Neumann Series
在这里只能说诺伊曼牛逼, If
这个直接相乘即可验证出来了,诺伊曼给了我们一个估算
Perturbation Term
现在我们假设给予
从而,我们仅要看
假设
为了方便起见,我们仅考虑其一阶估计
可见,右边儿的第二项就是扰动项:
扰动项 => 条件数
首先我们先得到
这肯定是上界嘛,因为只估算到了一阶。那么,只要这个上界足够小,那么其误差就可能大。
由于解本身有大有小,所以我们不能直接用其差值进行误差的估量,进而采用
其中,由于B是扰动,所以
我们称
至于这个“小”还是“大”,因为已经经过模的规范化了,所以不同矩阵之间也可以比较。
条件数为多少时才是凉态的?
这里其实可以做一个实验,编写代码画图,构造一些指定条件数的矩阵出来,观察其轻微扰动之后的差值。给出网友的结论:(第一步骤实验!)
首先奇异和病态没有必然的联系,良态、病态、条件数都要针对求解的问题而言,比如说矩阵求逆的性态和矩阵求特征值的性态就完全是两码事 在2-范数扰动的意义下,矩阵求逆或者解线性方程组的时候奇异矩阵可以认为是最病态(无限病态)的矩阵,因为它有零奇异值(注意,这个问题的性态体现在奇异值而不是特征值) 至于什么样的矩阵算病态,没有绝对的标准,因为大和小是相对的概念 通常病态与否也与实际计算的机器精度有关,比如IEEE单精度下K=10^4算比较病态了,但在IEEE双精度下就算比较良态