矩阵的条件数(condition number)是数值分析和线性代数中的一个重要概念,它刻画了矩阵某方面的特性。本文从条件数的定义到应用,全方位解读一下这一概念。
矩阵范数
我们都知道,向量范数是对向量长度的一种衡量。最常用的2范数,即为向量在欧式空间中的长度。那么矩阵有范数吗?如果有,矩阵范数也是对其长度的衡量吗?
矩阵也有范数,但并非是对其长度的衡量。将矩阵与向量放在一起做个比较,从几何意义上来说,向量表示的是一个具体的点,而矩阵则是用来对点进行坐标变换。也就是说,向量是实体,矩阵是对实体的变换。实体的长度是范数,与此对应,矩阵对实体变换的能力也是范数。这一能力,恰好体现在向量变换前后其长度的缩放程度,矩阵范数越大,越可能把一个向量拉得更长。这一概念用公式表示如下
向量
现在,我们根据上面的定义计算
其中,第三个等式进行了变量替换
条件数
定义
为矩阵
接下来,我们将会看到,条件数在线性方程稳定性上扮演着怎样的角色。
线性方程的稳定性
考虑线性方程
在方程右侧添加噪声
代入
两边同时取范数
由(1)式可知
同理,由(2)式可知
将(4)(5)左右两边分别乘起来,并整理得
该式规定了线性方程的解
既然有下界,当然也有上界,上界的推导与上述过程类似,不同的是,需要将
该上界表明,当条件数为10时,观测值变化100%,会导致解最多变化1000%。
最后,把上面两个不等式放在一起
重新审视这一不等式,我们可以得到一些直观的结论。首先,矩阵
如何计算条件数
让我们回到矩阵范数的定义
它的几何含义是向量在经过
回忆曾经学过的线性代数,里面有一个概念——奇异值,恰好可以完美表达这一思想。奇异值分解在几何上的表现就是将一组正交基转化为另一组正交基,奇异值描述了对应基向量的放缩倍数。这样的话,最大的奇异值就对应了向量经过
结语
本文简单介绍了矩阵范数、条件数的概念及其在线性方差稳定性中的应用。事实上,广义的条件数不仅仅局限于矩阵,它是误差分析中的一项通用工具。条件数的计算方式也不只一种,根据矩阵的形式有所不同。笔者对条件数的认识有限,只能讲到这里,如有错误恳请随时指出。
参考资料
What is the Condition Number of a Matrix? Cleve Moler
Why the condition number of matrix given by eigenvalues? Math.StackExchange
Condition number Wikipedia