1. 矩阵范数
我们怎么来衡量一个矩阵的大小呢?针对一个向量,它的长度是 (||oldsymbol x||)。针对一个矩阵,它的范数是 (||A||)。有时候我们会用向量的范数来替代长度这个说法,但对于矩阵我们只说范数。有很多方式来定义矩阵的范数,我们来看看所有范数的的要求然后选择其中一个。
Frobenius 对矩阵中的所有元素进行平方 (|a_{ij}|^2) 再相加,然后 (||A||_F) 就是它的平方根。这就像把矩阵看作是一个很长的有 (n^2) 个元素的向量,这有时候会很有用,但这里我们不选择它。
向量范数满足三角不等式,即 $||oldsymbol x+oldsymbol y|| $ 不大于 $||oldsymbol x|| + ||oldsymbol y|| $, (2oldsymbol x) 或者 (-2oldsymbol x) 的长度变为两倍。同样的规则也应用于矩阵的范数:
第二个对矩阵范数的要求是新的,因为矩阵可以相乘。范数 (||A||) 控制着从 (oldsymbol x) 到 (Aoldsymbol x) 和从 (A) 到(B) 的增长。
根据此,我们可以这样定义矩阵的范数:
恒等矩阵的范数为 1,针对一个正交矩阵,我们有 (||Qoldsymbol x||=||oldsymbol x||),所以正交矩阵的范数也为 1。
针对正定的对称矩阵,(||A||=lambda_{max}(A))。
将矩阵分解成 (A=QLambda Q^T),左右两边的正交矩阵保持向量的长度不变,因此 (||Aoldsymbol x||/||oldsymbol x||) 的最大值就是对角阵中的最大特征值。对于一个对称矩阵,我们仍然可以得到上面的分解,只不过此时的特征值不能保证一定是正数,矩阵的范数变为了特征值绝对值的最大值。
对于不对称的矩阵,它的特征值不能衡量矩阵真正的大小,范数可以比所有特征值都大。
对于上面的例子,(oldsymbol x=(0, 1)) 是对称矩阵 (A^TA) 的特征向量,事实上矩阵的范数是由 (A^TA) 的最大特征值决定的。
矩阵的范数是 (A^TA) 最大特征值的平方根,也就是矩阵的最大奇异值。
2. 条件数
有些系统对误差很敏感,有些则不是那么敏感,对误差的灵敏度我们用条件数来衡量。
原始的方程为 (Aoldsymbol x=oldsymbol b),假设方程右边由于测量误差被改变为了 (oldsymbol b+Delta oldsymbol b),那么我们的解就变成了 (oldsymbol x+Delta oldsymbol x),我们的目标是估计 (Delta oldsymbol b) 是怎么影响 (Delta oldsymbol x) 的。
如果 (A^{-1}) 很大的话,此时矩阵接近于奇异,(Delta oldsymbol x) 就会很大。(Delta oldsymbol x) 还会变得特别大如果 (Delta oldsymbol b) 在错误的方向,因为它会被 (A^{-1}) 放大。最大的误差为 (||Delta oldsymbol x||=||A^{-1}|| space ||Delta oldsymbol b||)。
但这样会有一个问题,当我们改变 (A) 的话,方程的解 (oldsymbol x) 和 (Delta oldsymbol x) 都会同时改变,相对误差 (||Delta oldsymbol x|| / ||oldsymbol x||) 却保持不变。事实上,应该是解 (oldsymbol x) 的相对误差和 (oldsymbol b) 的误差相比较,条件数 (c=||A|| space ||A^{-1}||) 衡量了方程 (Aoldsymbol x=oldsymbol b) 的灵敏度。
- 证明
(1) 式和 (2) 式相乘,可得,
上式两边同时除以 (||oldsymbol b|| space ||oldsymbol x||) 可得,
同理可得,
此外,对于正定矩阵,条件数来自于它的特征值。
获取更多精彩,请关注「seniusen」!