Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2.3 条件数与病态线性方程组

对应教材 2.3.1–2.3.2、定理 2.6、例 4–5、习题 9–12;对应老师第 3 讲 §一(点到)。 本节回答:数据有微小扰动时,解会坏多少? 答案由条件数 cond(A)\mathrm{cond}(A) 决定。

2.3.1 条件数与扰动界

定义:对非奇异矩阵 AA,称 cond(A)=∥A∥ ∥A−1∥ \mathrm{cond}(A)=\lVert A\rVert,\lVert A^{-1}\rVert 为 AA 的条件数。常用 cond1,cond∞,cond2\mathrm{cond}_1,\mathrm{cond}_\infty,\mathrm{cond}_2;其中 cond2(A)=σmax⁡(A)σmin⁡(A)=λmax⁡(ATA)λmin⁡(ATA). \mathrm{cond}_2(A)=\frac{\sigma_{\max}(A)}{\sigma_{\min}(A)} =\sqrt{\frac{\lambda_{\max}(A^{\mathrm T}A)}{\lambda_{\min}(A^{\mathrm T}A)}}.

性质:cond(A)≥1\mathrm{cond}(A)\ge1;cond(kA)=cond(A) (k≠0)\mathrm{cond}(kA)=\mathrm{cond}(A)\ (k\ne0);正交矩阵 cond2(Q)=1\mathrm{cond}_2(Q)=1;实对称矩阵 cond2(A)=∣λmax⁡∣/∣λmin⁡∣\mathrm{cond}_2(A)=|\lambda_{\max}|/|\lambda_{\min}|。

定理 2.6(扰动界):设 AA 非奇异,x\boldsymbol x 是 Ax=bA\boldsymbol x=\boldsymbol b 的解,b≠0\boldsymbol b\ne0。若 ∥A−1∥∥ΔA∥<1\lVert A^{-1}\rVert\lVert\Delta A\rVert\lt1,则 A+ΔAA+\Delta A 非奇异,且 ∥Δx∥∥x∥≤cond(A)1−cond(A)ρA(ρA+ρb),ρA=∥ΔA∥∥A∥,ρb=∥Δb∥∥b∥. \frac{\lVert\Delta\boldsymbol x\rVert}{\lVert\boldsymbol x\rVert} \le \frac{\mathrm{cond}(A)}{1-\mathrm{cond}(A)\rho_A} \left(\rho_A+\rho_b\right), \qquad \rho_A=\frac{\lVert\Delta A\rVert}{\lVert A\rVert},\quad \rho_b=\frac{\lVert\Delta\boldsymbol b\rVert}{\lVert\boldsymbol b\rVert}.

证明要点:由 (A+ΔA)(x+Δx)=b+Δb(A+\Delta A)(\boldsymbol x+\Delta\boldsymbol x)=\boldsymbol b+\Delta\boldsymbol b 减去 Ax=bA\boldsymbol x=\boldsymbol b,得 Δx=A−1Δb−A−1ΔA x−A−1ΔA Δx. \Delta\boldsymbol x=A^{-1}\Delta\boldsymbol b-A^{-1}\Delta A,\boldsymbol x-A^{-1}\Delta A,\Delta\boldsymbol x. 取范数,把最后一项移到左边,用 ∥b∥≤∥A∥∥x∥\lVert\boldsymbol b\rVert\le\lVert A\rVert\lVert\boldsymbol x\rVert 放缩,即得。■\blacksquare

读法:条件数把“输入的相对扰动”放大成“输出的相对扰动”的上界。cond(A)\mathrm{cond}(A) 大,问题病态;此时换算法救不了,只能换提法(换基、正则化、提高精度)。

例 4(教材 2.3.1):教材用 A=(1111.0001) A=\begin{pmatrix}1&amp;1\1&amp;1.0001\end{pmatrix} 展示右端微小扰动引起解的巨大变化;其 cond∞(A)≈4.0×104\mathrm{cond}_\infty(A)\approx4.0\times10^4,右端 0.005%0.005% 的扰动可带来约 50%50% 的解误差。

例 5(教材 2.3.1–2.3.2):系数矩阵元素数量级悬殊时,先做行均衡化(每行除以该行最大元素)再算条件数/求解;否则“病态”可能只是量纲造成的假象。

2.3.2 病态方程组的处置

教材 2.3.2 给出四条常用办法:

  1. 提高精度:双精度/多精度能减轻舍入,但不能改变条件数;条件数 102010^{20} 时仍然无解。
  2. 行(列)均衡化:把每行/列缩放到同一量级,降低人为病态。
  3. 残差校正(迭代精化):用当前解算残差 r=b−Ax^\boldsymbol r=\boldsymbol b-A\hat{\boldsymbol x},解 AΔx=rA\Delta\boldsymbol x=\boldsymbol r,令 x^←x^+Δx\hat{\boldsymbol x}\leftarrow\hat{\boldsymbol x}+\Delta\boldsymbol x;在条件数不太大且残差计算足够精确时有效。
  4. 换提法:正则化(Tikhonov)、换基(如插值从范德蒙德基换到拉格朗日基)、增广方程等。

关键区分:残差小 ≠\ne 误差小。e=A−1r\boldsymbol e=A^{-1}\boldsymbol r,所以 ∥e∥∥x∥≤cond(A)∥r∥∥b∥. \frac{\lVert\boldsymbol e\rVert}{\lVert\boldsymbol x\rVert} \le \mathrm{cond}(A)\frac{\lVert\boldsymbol r\rVert}{\lVert\boldsymbol b\rVert}. 条件数大时,残差可以很小而误差仍然很大。停机判据只能保证“残差小”,不能保证“解准”。

2.3.3 习题(教材习题 9–12)

2.9 · 八位十进制列主元 + 条件数(教材习题 9)

用八位十进制列主元 Gauss 消去求解教材习题 9 的方程组,并求系数矩阵的行范数条件数;结果说明什么?

参考答案

列主元保证乘数 ≤1\le1,但若 cond∞(A)\mathrm{cond}_\infty(A) 很大,解的相对误差仍会被放大;条件数大说明问题是病态的,换算法只能避免额外误差,不能把病态变良态。

2.10 · 正交矩阵的条件数(教材习题 10)

设 AA 是正交矩阵,证明 cond2(A)=1\mathrm{cond}_2(A)=1。

参考答案

正交矩阵满足 ATA=IA^{\mathrm T}A=I,故 σi(A)=1\sigma_i(A)=1,于是 cond2(A)=σmax⁡/σmin⁡=1\mathrm{cond}_2(A)=\sigma_{\max}/\sigma_{\min}=1。几何上,正交变换不改变长度,最坏放大倍数就是 1。

2.11 · 残差与误差界(教材习题 11)

设 AA 非奇异,x~\tilde{\boldsymbol x} 是 Ax=bA\boldsymbol x=\boldsymbol b 的近似解,r=b−Ax~\boldsymbol r=\boldsymbol b-A\tilde{\boldsymbol x}。证明 ∥x∗−x~∥∥x∗∥≤cond(A)∥r∥∥b∥. \frac{\lVert\boldsymbol x^{*}-\tilde{\boldsymbol x}\rVert}{\lVert\boldsymbol x^{*}\rVert} \le \mathrm{cond}(A)\frac{\lVert\boldsymbol r\rVert}{\lVert\boldsymbol b\rVert}.

参考答案

x∗−x~=A−1r\boldsymbol x^{*}-\tilde{\boldsymbol x}=A^{-1}\boldsymbol r,取范数得 ∥x∗−x~∥≤∥A−1∥∥r∥\lVert\boldsymbol x^{*}-\tilde{\boldsymbol x}\rVert\le\lVert A^{-1}\rVert\lVert\boldsymbol r\rVert;又 ∥b∥≤∥A∥∥x∗∥\lVert\boldsymbol b\rVert\le\lVert A\rVert\lVert\boldsymbol x^{*}\rVert,相除即得。

2.12 · 条件数与残差反例(教材习题 12)

对教材习题 12 的 A,bA,\boldsymbol b,计算行范数条件数,并比较两个近似解的残差与误差;说明什么?

参考答案

AA 的两行近似线性相关,cond∞(A)\mathrm{cond}_\infty(A) 很大;两个近似解的残差都可能很小,但误差可以相差很大。结论:残差不是误差,条件数大时尤其不能用残差小来判断解准。

覆盖核对

本节覆盖教材 2.3.1–2.3.2、定理 2.6、例 4–5、习题 9–12;老师第 3 讲 §一(条件数的范数语言)。下一节:2.4.1 迭代法引论。