11.2 范数和条件数

一、范数

我们要如何衡量一个矩阵的大小呢?对于一个向量 x\boldsymbol xx,它的长度是 ∣∣x∣∣||\boldsymbol x||∣∣x∣∣,对于一个矩阵 AAA,它的范数(norm) 是 ∣∣A∣∣||A||∣∣A∣∣. "范数" 有时也会用在向量上,此时表示的就是向量的长度;对于矩阵,使用的就是范数来衡量矩阵的大小,而矩阵的范数 ∣∣A∣∣||A||∣∣A∣∣ 有很多不同的定义。下面举一些例子,这里选用一种方式来表示矩阵范数。

弗罗贝尼乌斯(Frobenius\textrm{Frobenius}Frobenius)的对矩阵 AAA 的范数是这样定义的,将所有元素的平方 ∣aij∣2|a_{ij}|^2∣aij∣2 相加,然后再取平方根,把这个数定义为范数 ∣∣A∣∣F||A||_F∣∣A∣∣F. 这样定义的范数是将矩阵 AAA 当做一个有 n2n^2n2 个分量的长向量:它有时候有用,但是这里不选择这种方式。

我们这里类比向量范数的定义来导出矩阵的范数。向量的范数满足三角不等式 ∣∣x+y∣∣≤∣∣x∣∣+∣∣y∣∣||\boldsymbol x+\boldsymbol y||\le||\boldsymbol x||+||\boldsymbol y||∣∣x+y∣∣≤∣∣x∣∣+∣∣y∣∣,2x2\boldsymbol x2x 或 −2x-2\boldsymbol x−2x 的长度都是 2∣∣x∣∣2||\boldsymbol x||2∣∣x∣∣,将这些规则同样应用在矩阵范数:

∣∣A+B∣∣≤∣∣A∣∣+∣∣B∣∣和∣∣cA∣∣=∣c∣ ∣∣A∣∣(11.2.1){\color{blue}||A+B||\le||A||+||B||}\kern 10pt和\kern 10pt{\color{blue}||cA||=|c|\,||A||}\kern 30pt(11.2.1)∣∣A+B∣∣≤∣∣A∣∣+∣∣B∣∣和∣∣cA∣∣=∣c∣∣∣A∣∣(11.2.1)

矩阵范数的第二个要求是新的规则,因为矩阵有乘法运算,范数 ∣∣A∣∣||A||∣∣A∣∣ 控制着 x\boldsymbol xx 到 AxA\boldsymbol xAx 和 BBB 到 ABABAB 的增长率:

增长因子 Growth factor ∣∣A∣∣∣∣Ax∣∣≤∣∣A∣∣ ∣∣x∣∣和∣∣AB∣∣≤∣∣A∣∣ ∣∣B∣∣(11.2.2)\pmb{增长因子\,\textrm{Growth factor}\,||A||}\kern 12pt{\color{blue}||A\boldsymbol x||\le||A||\,||\boldsymbol x||}\kern 8pt和\kern 8pt{\color{blue}||AB||\le||A||\,||B||}\kern 20pt(11.2.2)增长因子Growth factor∣∣A∣∣∣∣Ax∣∣≤∣∣A∣∣∣∣x∣∣和∣∣AB∣∣≤∣∣A∣∣∣∣B∣∣(11.2.2)

通过这些规则就自然的导出了矩阵范数 ∣∣A∣∣||A||∣∣A∣∣ 的定义:

A 的范数是 ∣∣Ax∣∣∣∣x∣∣的最大值:∣∣A∣∣=maxx≠0∣∣Ax∣∣∣∣x∣∣(10.2.3)\pmb{A\,的范数是\,\dfrac{||A\boldsymbol x||}{||\boldsymbol x||}的最大值:}\kern 15pt{\color{blue}||A||=\underset{\boldsymbol x\neq\boldsymbol 0}{\textrm{max}}\dfrac{||A\boldsymbol x||}{||\boldsymbol x||}}\kern 20pt(10.2.3)A的范数是∣∣x∣∣∣∣Ax∣∣的最大值:∣∣A∣∣=x=0max∣∣x∣∣∣∣Ax∣∣(10.2.3)

∣∣Ax∣∣∣∣x∣∣\dfrac{||A\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣Ax∣∣ 永远不会大于 ∣∣A∣∣||A||∣∣A∣∣(最大值),这表明 ∣∣Ax∣∣≤∣∣A∣∣ ∣∣x∣∣||A\boldsymbol x||\le||A||\,||\boldsymbol x||∣∣Ax∣∣≤∣∣A∣∣∣∣x∣∣.

例1 】如果 AAA 是单位矩阵,那么范数就是比值 ∣∣x∣∣∣∣x∣∣\dfrac{||\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣x∣∣,因此 ∣∣I∣∣=1||I||=1∣∣I∣∣=1. 如果 AAA 是正交矩阵 QQQ,它也不会改变向量的长度:∣∣Qx∣∣=∣∣x∣∣||Q\boldsymbol x||=||\boldsymbol x||∣∣Qx∣∣=∣∣x∣∣,所以它的范数 ∣∣Q∣∣=1||Q||=1∣∣Q∣∣=1. 正交矩阵 QQQ 在用于计算时有一个很好的性质:误差不会增加。

例2 】对角矩阵的范数是它的元素取绝对值后的最大值:A=[2003]的范数是∣∣A∣∣=3,特征向量 x=[01] 有 Ax=3xA=\begin{bmatrix}2&0\\0&3\end{bmatrix}\kern 5pt的范数是\kern 5pt||A||=3,特征向量\,\boldsymbol x=\begin{bmatrix}0\\1\end{bmatrix}\,有\,A\boldsymbol x=3\boldsymbol xA=[2003]的范数是∣∣A∣∣=3,特征向量x=[01]有Ax=3x它其中一个特征值是 333,对于这个矩阵 AAA(并非所有的矩阵 AAA),它最大的特征值等于它的范数。
对称正定矩阵 A 的范数 ∣∣A∣∣=λmax(A).\color{blue}对称正定矩阵\,A\,的范数\,||A||=\lambda_{\textrm{max}}(A).对称正定矩阵A的范数∣∣A∣∣=λmax(A).将 x\boldsymbol xx 选为 AAA 最大的特征值所对应的特征向量,则 ∣∣Ax∣∣∣∣x∣∣=λmax\dfrac{||A\boldsymbol x||}{||\boldsymbol x||}=\lambda_{\textrm{max}}∣∣x∣∣∣∣Ax∣∣=λmax,那么没有其它的向量 x\boldsymbol xx 能够使得这个比这更大了,矩阵 A=QΛQTA=Q\Lambda Q^TA=QΛQT,而正交矩阵 QQQ 和 QTQ^TQT 不会改变向量的长度,所以这个比值的最大值实际上就是 ∣∣Λx∣∣∣∣x∣∣\dfrac{||\Lambda\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣Λx∣∣ 的最大值,所以范数 ∣∣A∣∣||A||∣∣A∣∣ 就是 Λ\LambdaΛ 最大的特征值。

对称矩阵: 假设 AAA 是对称但不是正定矩阵,则仍可以表示为 A=QΛQTA=Q\Lambda Q^TA=QΛQT,此时的范数是 ∣λ1∣,∣λ2∣,⋯ ,∣λn∣|\lambda_1|,|\lambda_2|,\cdots,|\lambda_n|∣λ1∣,∣λ2∣,⋯,∣λn∣ 的最大值。这里取绝对值是因为范数是与长度相关的。对于特征向量有 ∣∣Ax∣∣=∣∣λx∣∣=∣λ∣ ∣∣x∣∣||A\boldsymbol x||=||\lambda\boldsymbol x||=|\lambda|\,||\boldsymbol x||∣∣Ax∣∣=∣∣λx∣∣=∣λ∣∣∣x∣∣,因此可知,最大比值对应的向量 x\boldsymbol xx 就是最大 ∣λ∣|\lambda|∣λ∣ 所对应的特征向量。

非对称矩阵: 如果 AAA 不是对称矩阵,它的特征值可能无法衡量这个矩阵真正的大小,矩阵范数可能比任意的特征值的绝对值都要大。如下面的非对称矩阵有 λ1=λ2=0\lambda_1=\lambda_2=0λ1=λ2=0,但是它的范数不为零:∣∣A∣∣>λmaxA=[0200]的范数是∣∣A∣∣=maxx≠0∣∣Ax∣∣∣∣x∣∣=2||A||>\lambda_{\textrm{max}}\kern 20ptA=\begin{bmatrix}0&2\\0&0\end{bmatrix}\kern 15pt的范数是\kern 15pt||A||=\underset{\boldsymbol x\ne \boldsymbol 0}{\textrm{max}}\dfrac{||A\boldsymbol x||}{||\boldsymbol x||}=2∣∣A∣∣>λmaxA=[0020]的范数是∣∣A∣∣=x=0max∣∣x∣∣∣∣Ax∣∣=2向量 x=(0,1)\boldsymbol x=(0,1)x=(0,1) 时得到 Ax=(2,0)A\boldsymbol x=(2,0)Ax=(2,0),它们长度的比值是 21=2\dfrac{2}{1}=212=2,也是最大的比值即 ∣∣A∣∣||A||∣∣A∣∣,尽管此时 x\boldsymbol xx 并不是 AAA 的一个特征向量。
x=(0,1)\boldsymbol x=(0,1)x=(0,1) 是对称矩阵 ATAA^TAATA 的一个特征向量,但不是非对称矩阵 AAA 的特征向量,范数实际上是由 ATAA^TAATA 最大特征值的绝对值决定的:

AAA 的范数(无论是否对称)是 λmax(ATA)\lambda_{\textrm{max}}(A^TA)λmax(ATA) 的算术平方根:∣∣A∣∣2=maxx≠0∣∣Ax∣∣2∣∣x∣∣=maxx≠0xTATAxxTx=λmax(ATA)(11.2.4){\color{blue}||A||^2}=\underset{\boldsymbol x\ne\boldsymbol 0}{\textrm{max}}\dfrac{||A\boldsymbol x||^2}{||\boldsymbol x||}=\underset{\boldsymbol x\ne\boldsymbol 0}{\textrm{max}}\dfrac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}={\color{blue}\lambda_{\textrm{max}}(A^TA)}\kern 22pt(11.2.4)∣∣A∣∣2=x=0max∣∣x∣∣∣∣Ax∣∣2=x=0maxxTxxTATAx=λmax(ATA)(11.2.4)

上述非对称矩阵的例子中 λmax(A)=0\lambda_{\textrm{max}}(A)=0λmax(A)=0,而 λmax(ATA)=4:\lambda_{\textrm{max}}(A^TA)=4:λmax(ATA)=4:A=[0200]得到ATA=[0004],该矩阵有 λmax=4,所以范数 ∣∣A∣∣=4A=\begin{bmatrix}0&2\\0&0\end{bmatrix}\kern 7pt得到\kern 7ptA^TA=\begin{bmatrix}0&0\\0&4\end{bmatrix},该矩阵有\,\lambda_{\textrm{max}}=4,所以范数\, ||A||=\sqrt4A=[0020]得到ATA=[0004],该矩阵有λmax=4,所以范数∣∣A∣∣=4 对任意的矩阵 A:\pmb A:\kern 5ptA:选择 x\boldsymbol xx 为 ATAA^TAATA 最大的特征值 λmax\lambda_{\textrm{max}}λmax 所对应的特征向量,则(11.2.4)中的比值是 xTATAxxTx\dfrac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}xTxxTATAx,就是 λmax\lambda_{\textrm{max}}λmax.

没有其它的 x\boldsymbol xx 能够使得这个比值更大了,对称矩阵 ATAA^TAATA 的特征值为 λ1,λ2,⋯ ,λn\lambda_1,\lambda_2,\cdots,\lambda_nλ1,λ2,⋯,λn,它们对应标准正交特征向量 q1,q2,⋯ ,qn\boldsymbol q_1,\boldsymbol q_2,\cdots,\boldsymbol q_nq1,q2,⋯,qn,每一个 x\boldsymbol xx 都可以表示成这些向量的线性组合,将其代入这个比值,由 qiTqj=0\boldsymbol q_i^T\boldsymbol q_j=0qiTqj=0 得:xTATAxxTx=(c1q1+c2q2+⋯+cnqn)T(c1λ1q1+c2λ2q2+⋯+cnλnqn)(c1q1+c2q2+⋯+cnqn)T(c1q1+c2q2+⋯+cnqn)=c12λ1+c22λ2+⋯+cn2λnc12+c22+⋯+cn2\dfrac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}=\dfrac{(c_1\boldsymbol q_1+c_2\boldsymbol q_2+\cdots+c_n\boldsymbol q_n)^T(c_1\lambda_1\boldsymbol q_1+c_2\lambda_2\boldsymbol q_2+\cdots+c_n\lambda_n\boldsymbol q_n)}{(c_1\boldsymbol q_1+c_2\boldsymbol q_2+\cdots+c_n\boldsymbol q_n)^T(c_1\boldsymbol q_1+c_2\boldsymbol q_2+\cdots+c_n\boldsymbol q_n)}=\dfrac{c_1^2\lambda_1+c_2^2\lambda_2+\cdots+c_n^2\lambda_n}{c_1^2+c_2^2+\cdots+c_n^2}xTxxTATAx=(c1q1+c2q2+⋯+cnqn)T(c1q1+c2q2+⋯+cnqn)(c1q1+c2q2+⋯+cnqn)T(c1λ1q1+c2λ2q2+⋯+cnλnqn)=c12+c22+⋯+cn2c12λ1+c22λ2+⋯+cn2λn除了与 λmax\lambda_{\textrm{max}}λmax 相乘的系数外,其它的系数 cic_ici 均为零,就可以得到最大的比值 λmax\lambda_{\textrm{max}}λmax.

注1: 式(11.2.4)中的比值就是对称矩阵 ATAA^TAATA 的瑞利商(Rayleigh quotient\pmb{\textrm{Rayleigh quotient}}Rayleigh quotient) ,它的最大值就是最大的特征值 λmax(ATA)\lambda_{\textrm{max}}(A^TA)λmax(ATA),最小值是 λmin(ATA)\lambda_{\textrm{min}}(A^TA)λmin(ATA). 如果将任意的 x\boldsymbol xx 代入瑞利商 xTATAxxTx\dfrac{\boldsymbol x^TA^TA\boldsymbol x}{\boldsymbol x^T\boldsymbol x}xTxxTATAx,那么一定会得到一个介于 λmin(ATA)\lambda_{\textrm{min}}(A^TA)λmin(ATA) 和 λmax(ATA)\lambda_{\textrm{max}}(A^TA)λmax(ATA) 之间的一个数。
注2: 范数 ∣∣A∣∣||A||∣∣A∣∣ 等于 AAA 最大的奇异值 σmax\pmb{\sigma_{\textrm{max}}}σmax. 奇异值 σ1,σ2,⋯ ,σr\sigma_1,\sigma_2,\cdots,\sigma_rσ1,σ2,⋯,σr 是 ATAA^TAATA 正特征值的算术平方根,所以 σmax=λmax\sigma_{\textrm{max}}=\sqrt{\lambda_{\textrm{max}}}σmax=λmax . 奇异值分解 A=UΣVTA=U\Sigma V^TA=UΣVT 中由于 UUU 和 VVV 是正交的,所以范数 ∣∣A∣∣=σmax||A||=\sigma_{\textrm{max}}∣∣A∣∣=σmax.

二、矩阵 A 的条件数

舍入误差可能严重影响着求解的精度,有些系统比较敏感,但是有些系统不太敏感。误差的敏感度是通过条件数(condition number) 来衡量的。我们用它来评估对 x\boldsymbol xx 的影响。

原方程为 Ax=bA\boldsymbol x=\boldsymbol bAx=b,假设右边由于舍入或测量误差变为了 b+Δb\boldsymbol b+\Delta\boldsymbol bb+Δb,解使得变成了 x+Δx\boldsymbol x+\Delta\boldsymbol xx+Δx,我们的目的是估算当方程组右侧改变了 Δb\Delta \boldsymbol bΔb 时,其解的变化 Δx\Delta\boldsymbol xΔx. 我们将两个方程相减得到误差方程 A(Δx)=ΔbA(\Delta \boldsymbol x)=\Delta\boldsymbol bA(Δx)=Δb:从 A(x+Δx)=b+Δb 中减去 Ax=b得A(Δx)=Δb(11.2.5)从\,A(\boldsymbol x+\Delta \boldsymbol x)=\boldsymbol b+\Delta\boldsymbol b\,中减去\,A\boldsymbol x=\boldsymbol b\kern 10pt得\kern 10pt{\color{blue}A(\Delta\boldsymbol x)=\Delta\boldsymbol b}\kern 15pt(11.2.5)从A(x+Δx)=b+Δb中减去Ax=b得A(Δx)=Δb(11.2.5)误差是 Δx=A−1Δb\Delta \boldsymbol x=A^{-1}\Delta\boldsymbol bΔx=A−1Δb. 当矩阵 A−1A^{-1}A−1 的范数很大时(AAA 近似奇异矩阵),这个误差也会很大。当 Δb\Delta\boldsymbol bΔb 位于被 A−1A^{-1}A−1 放大的最多的方向时,即最大的奇异值对应的右奇异向量,误差 Δx\Delta \boldsymbol xΔx 将会非常大,最大的误差是 ∣∣Δx∣∣=∣∣A−1∣∣ ∣∣Δb∣∣||\Delta \boldsymbol x||=||A^{-1}||\,||\Delta\boldsymbol b||∣∣Δx∣∣=∣∣A−1∣∣∣∣Δb∣∣.

这种与 ∣∣A−1∣∣||A^{-1}||∣∣A−1∣∣ 相关的误差有一个很严重的问题,如果我们将矩阵 AAA 中的每个元素都乘以 100010001000,那么 A−1A^{-1}A−1 中的每个元素会除以 100010001000,这个矩阵会看起来敏感度变好了一千倍,但是简单的缩放并没有改变这个问题的本质。事实上 Δx\Delta\boldsymbol xΔx 确实会除以 100010001000,但是精确解 x=A−1b\boldsymbol x=A^{-1}\boldsymbol bx=A−1b 也会除以 100010001000,相对误差(relative error) ∣∣Δx∣∣∣∣x∣∣\dfrac{||\Delta\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣Δx∣∣ 保持不变,因此使用 x\boldsymbol xx 的相对变化值与 b\boldsymbol bb 的相对变化值比较比较合理。

比较相对误差会引出 "条件数" c=∣∣A∣∣ ∣∣A−1∣∣c=||A||\,||A^{-1}||c=∣∣A∣∣∣∣A−1∣∣. 将 AAA 的每个元素都乘以 100010001000 并不会改变这个条件数,因为这样 A−1A^{-1}A−1 中的每个元素都会除以 100010001000,这使得条件数 ccc 不变。条件数衡量 Ax=bA\boldsymbol x=\boldsymbol bAx=b 解的敏感度。

解的相对误差小于 c=∣∣A∣∣ ∣∣A−1∣∣c=||A||\,||A^{-1}||c=∣∣A∣∣∣∣A−1∣∣ 乘以方程组常数项的相对误差: Condition number 条件数 c∣∣Δx∣∣∣∣x∣∣≤c∣∣Δb∣∣∣∣b∣∣(11.2.6)\pmb{\textrm{Condition\,number}\,条件数\,c}\kern 20pt{\color{blue}\dfrac{||\Delta \boldsymbol x||}{||\boldsymbol x||}\le c\dfrac{||\Delta\boldsymbol b||}{||\boldsymbol b||}}\kern 25pt(11.2.6)Conditionnumber条件数c∣∣x∣∣∣∣Δx∣∣≤c∣∣b∣∣∣∣Δb∣∣(11.2.6)如果误差是系数矩阵 ΔA\Delta AΔA(误差在 AAA 中而不是 b\boldsymbol bb 了),此时 ccc 仍然控制着 Δx\Delta \boldsymbol xΔx:系数矩阵 A 的误差为 ΔA∣∣Δx∣∣∣∣x+Δx∣∣≤c∣∣ΔA∣∣∣∣A∣∣(11.2.7)\pmb{系数矩阵\,A\,的误差为}\,\Delta A\kern 15pt{\color{blue}\dfrac{||\Delta \boldsymbol x||}{||\boldsymbol x+\Delta\boldsymbol x||}\le c\dfrac{||\Delta A||}{||A||}}\kern 22pt(11.2.7)系数矩阵A的误差为ΔA∣∣x+Δx∣∣∣∣Δx∣∣≤c∣∣A∣∣∣∣ΔA∣∣(11.2.7)

证明: 原始方程是 b=Ax\boldsymbol b=A\boldsymbol xb=Ax,由误差方程(11.2.5)得 Δx=A−1Δb\Delta\boldsymbol x=A^{-1}\Delta\boldsymbol bΔx=A−1Δb,应用矩阵范数的重要性质 ∣∣Ax∣∣≤∣∣A∣∣ ∣∣x∣∣||A\boldsymbol x||\le||A||\,||\boldsymbol x||∣∣Ax∣∣≤∣∣A∣∣∣∣x∣∣ 得:∣∣b∣∣≤∣∣A∣∣ ∣∣x∣∣和∣∣Δx∣∣≤∣∣A−1∣∣ ∣∣Δb∣∣||\boldsymbol b||\le||A||\,||\boldsymbol x||\kern 20pt和\kern 20pt||\Delta\boldsymbol x||\le||A^{-1}||\,||\Delta\boldsymbol b||∣∣b∣∣≤∣∣A∣∣∣∣x∣∣和∣∣Δx∣∣≤∣∣A−1∣∣∣∣Δb∣∣将上面两个不等式两侧相乘得 ∣∣b∣∣ ∣∣Δx∣∣≤c∣∣x∣∣ ∣∣Δb∣∣||\boldsymbol b||\,||\Delta\boldsymbol x||\le c||\boldsymbol x||\,||\Delta\boldsymbol b||∣∣b∣∣∣∣Δx∣∣≤c∣∣x∣∣∣∣Δb∣∣,然后两边同时除以 ∣∣b∣∣ ∣∣x∣∣||\boldsymbol b||\,||\boldsymbol x||∣∣b∣∣∣∣x∣∣,左边就是相对误差 ∣∣Δx∣∣∣∣x∣∣\dfrac{||\Delta\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣Δx∣∣,右侧就是式(11.2.6)中的上界,即 ∣∣Δx∣∣∣∣x∣∣≤c∣∣Δb∣∣∣∣b∣∣\dfrac{||\Delta \boldsymbol x||}{||\boldsymbol x||}\le c\dfrac{||\Delta \boldsymbol b||}{||\boldsymbol b||}∣∣x∣∣∣∣Δx∣∣≤c∣∣b∣∣∣∣Δb∣∣.

当误差出现在系数矩阵上时,也可以得到相同的条件数 c=∣∣A∣∣ ∣∣A−1∣∣c=||A||\,||A^{-1}||c=∣∣A∣∣∣∣A−1∣∣,我们在误差防虫中用 ΔA\Delta AΔA 代替 Δb\Delta \boldsymbol bΔb:从 (A+ΔA)(x+Δx)=b 中减去 Ax=b,得 A(Δx)=−(ΔA)(x+Δx)从\,(A+\Delta A)(\boldsymbol x+\Delta\boldsymbol x)=\boldsymbol b\,中减去\,A\boldsymbol x=\boldsymbol b,得\,A(\Delta\boldsymbol x)=-(\Delta A)(\boldsymbol x+\Delta\boldsymbol x)从(A+ΔA)(x+Δx)=b中减去Ax=b,得A(Δx)=−(ΔA)(x+Δx)将最后一个方程两边同时左乘 A−1A^{-1}A−1,然后取范数就可得到式(11.2.7):∣∣Δx∣∣≤∣∣A−1∣∣ ∣∣ΔA∣∣ ∣∣x+Δx∣∣即∣∣Δx∣∣∣∣x+Δx∣∣≤∣∣A∣∣ ∣∣A−1∣∣∣∣ΔA∣∣∣∣A∣∣||\Delta\boldsymbol x||\le||A^{-1}||\,||\Delta A||\,||\boldsymbol x+\Delta\boldsymbol x||\kern 15pt即\kern 15pt\dfrac{||\Delta\boldsymbol x||}{||\boldsymbol x+\Delta\boldsymbol x||}\le||A||\,||A^{-1}||\dfrac{||\Delta A||}{||A||}∣∣Δx∣∣≤∣∣A−1∣∣∣∣ΔA∣∣∣∣x+Δx∣∣即∣∣x+Δx∣∣∣∣Δx∣∣≤∣∣A∣∣∣∣A−1∣∣∣∣A∣∣∣∣ΔA∣∣结论: 在求解过程中,会从两个地方引入误差:系数矩阵的误差 ΔA\Delta AΔA 和常数向量的误差 Δb\Delta\boldsymbol bΔb. 这些误差会影响解的误差 Δx\Delta\boldsymbol xΔx(可能很小也可能很大),而 x\boldsymbol xx 的相对误差由条件数 ccc 所控制。

误差 Δb\Delta\boldsymbol bΔb 是误差是由计算机的舍入误差和原始测量值 b\boldsymbol bb 所引起的,而误差 ΔA\Delta AΔA 还会受到消元过程的影响。小的主元会使分解的 LLL 和 UUU 产生较大的误差,而由于 (L+ΔL)(U+ΔU)=A+ΔA(L+\Delta L)(U+\Delta U)=A+\Delta A(L+ΔL)(U+ΔU)=A+ΔA,所以当 ΔA\Delta AΔA 或条件数很大时,误差 Δx\Delta \boldsymbol xΔx 也可能会非常大。

例3 】当 AAA 是对称矩阵时,c=∣∣A∣∣ ∣∣A−1∣∣c=||A||\,||A^{-1}||c=∣∣A∣∣∣∣A−1∣∣ 由特征值决定:A=[6002] 的范数为 6.A−1=[160012] 的范数是 12A=\begin{bmatrix}6&0\\0&2\end{bmatrix}\,的范数为\,6.\kern 10ptA^{-1}=\begin{bmatrix}\dfrac{1}{6}&0\\[1.5ex]0&\dfrac{1}{2}\end{bmatrix}\,的范数是\,\dfrac{1}{2}A=[6002]的范数为6.A−1= 610021 的范数是21这个 AAA 是对称正定矩阵,它的范数是 λmax=6\lambda_{\textrm{max}}=6λmax=6,A−1A^{-1}A−1 的范数是 1λmin=12\dfrac{1}{\lambda_{\textrm{min}}}=\dfrac{1}{2}λmin1=21,将这两个范数乘起来得到条件数 ∣∣A∣∣ ∣∣A−1∣∣=λmaxλmin||A||\,||A^{-1}||=\dfrac{\lambda_{\textrm{max}}}{\lambda_{\textrm{min}}}∣∣A∣∣∣∣A−1∣∣=λminλmax:正定矩阵 A 的条件数c=λmaxλmin=62=3\pmb{正定矩阵\,A\,的条件数}\kern 15ptc=\dfrac{\lambda_{\textrm{max}}}{\lambda_{\textrm{min}}}=\dfrac{6}{2}=3正定矩阵A的条件数c=λminλmax=26=3【例4 】上式 AAA 不变,它的特征值是 666 和 222,为了让 x\boldsymbol xx 比较小,将 b\boldsymbol bb 选择成沿着特征向量 (1,0)(1,0)(1,0) 的方向,为了使 ∣∣Δx∣∣||\Delta \boldsymbol x||∣∣Δx∣∣ 比较大,将 b\boldsymbol bb 选择成另一个特征向量的方向 (0,1)(0,1)(0,1),则 x=16b\boldsymbol x=\dfrac{1}{6}\boldsymbol bx=61b 且 Δx=12Δb\Delta\boldsymbol x=\dfrac{1}{2}\Delta \boldsymbol bΔx=21Δb,此时比值 ∣∣Δx∣∣∣∣x∣∣\dfrac{||\Delta\boldsymbol x||}{||\boldsymbol x||}∣∣x∣∣∣∣Δx∣∣ 就等于 c=3c=3c=3 乘比值 ∣∣Δb∣∣∣∣b∣∣\dfrac{||\Delta \boldsymbol b||}{||\boldsymbol b||}∣∣b∣∣∣∣Δb∣∣.

这个表示由条件数 c=∣∣A∣∣ ∣∣A−1∣∣c=||A||\,||A^{-1}||c=∣∣A∣∣∣∣A−1∣∣ 控制的的最大误差实际上是可能发生的。对于高斯消元法,已经被大量实验验证过的一个非常有效的经验法则是:计算机可能会因舍入误差而丢掉 log⁡c\log clogc 位的精度。

相关推荐
simon_skywalker5 小时前
线性代数及其应用习题答案(中文版)第一章 线性代数中的线性方程组 1.8 线性变换介绍(1)
线性代数
simon_skywalker12 小时前
线性代数及其应用习题答案(中文版)第一章 线性代数中的线性方程组 1.8 线性变换介绍(2)
线性代数
兩尛12 小时前
螺旋数字矩阵(C卷)
c语言·算法·矩阵
simon_skywalker13 小时前
线性代数及其应用习题答案(中文版)第二章 矩阵代数 2.1 矩阵运算(1)
线性代数·算法·矩阵
晚晶13 小时前
【Linux】opencv4.9.0静态库编译,开启opencl和EIGEN矩阵运算
linux·c++·opencv·矩阵·opencl
qq_4308558813 小时前
线代第二章矩阵第三课:矩阵乘法
线性代数·矩阵
图先14 小时前
线性代数第一章—向量空间及其性质
线性代数
simon_skywalker14 小时前
线性代数及其应用习题答案(中文版)第一章 线性代数中的线性方程组 1.9 线性变换的矩阵
线性代数·矩阵
qq_4308558814 小时前
线代第二章矩阵第二课:矩阵的加法、减法、数乘
人工智能·算法·矩阵