线性方程组的敏度分析与消去法的舍入误差分析


向量范数和矩阵范数

向量范数

定义 2.1.1 非负函数 \(\|\cdot\|:\mathbb{R}^n\to\mathbb{R}\) 称为 \(\mathbb{R}^n\) 上的向量范数,如果有

  • 正定性: \(\forall x\in\mathbb{R}^n,\ \|x\|\ge 0\) ,等号成立当且仅当 \(x = 0\) .
  • 齐次性: \(\forall x\in\mathbb{R}^n,\ \forall \alpha\in\mathbb{R},\ \|\alpha x\| = |\alpha|\|x\|\) .
  • 三角不等式: \(\forall x,y\in\mathbb{R}^n,\ \|x+y\|\le \|x\|+\|y\|\) .

容易验证向量范数是连续的.

最常用的向量范数是 \(p\) 范数

\[\|x\|_p = \left(|x_1|^p+\cdots+|x_n|^p\right)^{\frac{1}{p}},\quad p\ge 1 \]

其中最重要的是 \(p=1,2,\infty\) ,即

\[\begin{aligned} &\|x\|_1 = |x_1|+\cdots+|x_n|\\ &\|x\|_2 = \left(|x_1|^2+\cdots+|x_n|^2\right)^{\frac{1}{2}} = \sqrt{x^Tx}\\ &\|x\|_{\infty} = \max\{|x_i|:i=1,\cdots,n\} \end{aligned} \]

分别称为 \(1\) 范数, \(2\) 范数, \(\infty\) 范数,这三个范数的正定性和齐次性是显然的,容易证明 \(\|\cdot\|_1\)\(\|\cdot\|_{\infty}\) 满足三角不等式,而对于 \(\|\cdot\|_2\) 需要用到 Cauchy-Schwartz 不等式

\[|x^Ty| \le \|x\|_2\|y\|_2,\quad x,y\in\mathbb{R}^n \]

这是 Holder 不等式

\[|x^Ty| \le \|x\|_p\|y\|_p,\quad \dfrac{1}{p} + \dfrac{1}{q} = 1 \]

的特殊形式.

定理 2.1.1\(\|\cdot\|_{\alpha},\|\cdot\|_{\beta}\)\(\mathbb{R}^n\) 上任意两个范数,则存在 \(c_1,c_2\in\mathbb{R}\) ,使得

\[\forall x\in\mathbb{R}^n,\quad c_1\|x\|_{\alpha} \le \|x\|_{\beta} \le c_2\|x\|_{\alpha} \]

这一定理的证明较为复杂,它说明所有范数在此意义下都是等价的.

定理 2.1.2\(x_k\in\mathbb{R}^n\) ,则 \(\lim_{k\to\infty}\|x_k-x\| = 0\) 的充要条件为

\[\lim_{k\to\infty}\left|x_i^{(k)}-x_i\right| = 0,\quad i=1,\cdots,n \]

即向量序列的范数收敛等价于其分量收敛.

矩阵范数

我们可以将全体 \(n\times n\) 实矩阵构成的空间看做 \(n^2\) 维空间,然后直接推广向量范数到矩阵。但这样并未考虑到矩阵乘法,因此

定义 2.1.2 非负函数 \(\|\cdot\|:\mathbb{R}^{n\times n}\to\mathbb{R}\) 称为 \(\mathbb{R}^{n\times n}\) 上的矩阵范数,如果有

  • 正定性: \(\forall A\in\mathbb{R}^{n\times n},\ \|A\|\ge 0\) ,等号成立当且仅当 \(A = 0\) .
  • 齐次性: \(\forall A\in\mathbb{R}^{n\times n},\ \forall \alpha\in\mathbb{R},\ \|\alpha A\| = |\alpha|\|A\|\) .
  • 三角不等式: \(\forall A,B\in\mathbb{R}^{n\times n},\ \|A+B\|\le \|A\|+\|B\|\) .
  • 相容性: \(\forall A,B\in\mathbb{R}^{n\times n},\ \|AB\|\le \|A\|\|B\|\) .

类似的,有

  • \(\mathbb{R}^{n\times n}\) 上的矩阵范数等价.
  • 矩阵序列的范数收敛等价于其元素收敛.

定义 2.1.3 若矩阵范数 \(\|\cdot\|_M\) 和向量范数 \(\|\cdot\|_v\) 满足

\[\|Ax\|_v \le \|A\|_M\|x\|_v,\quad A\in\mathbb{R}^{n\times n},\ x\in\mathbb{R}^n \]

则称矩阵范数 \(\|\cdot\|_M\) 与向量范数 \(\|\cdot\|_v\) 相容.

定理 2.1.3\(\|\cdot\|\)\(\mathbb{R}^n\) 上的向量范数,若定义

\[\|A\|_M = \max_{\|x\|=1}\|Ax\|,\quad A\in\mathbb{R}^{n\times n} \]

\(\|\cdot\|_M\)\(\mathbb{R}^{n\times n}\) 上的矩阵范数.

证明 我们只证明两点:首先由于 \(\mathcal{D}=\{x\in\mathbb{R}^n:\|x\|=1\}\) 为有界闭集,而 \(\|\cdot\|\) 是连续函数,因此 \(\|Ax\|\) 最大值存在,这样定义的矩阵范数是有意义的;其次,对于任意 \(x\in\mathbb{R}^n,\ x\neq 0\) ,则有

\[\dfrac{\|Ax\|}{\|x\|} = \left\|A\dfrac{x}{\|x\|}\right\| \le \|A\|_M \]

从而有

\[\|Ax\| \le \|A\|_M\|x\|,\quad x\in\mathbb{R}^n \]

利用此性质可以证明 \(\|\cdot\|_M\) 满足矩阵范数的性质.

定理 2.1.4\(A=[a_{ij}]\in\mathbb{R}^{n\times n}\) ,则有

\[\begin{aligned} &\|A\|_1 = \max_{1\le j\le n}\sum_{i=1}^n|a_{ij}|\\ &\|A\|_{\infty} = \max_{1\le i\le n}\sum_{j=1}^n|a_{ij}|\\ &\|A\|_2 = \sqrt{\lambda_{\max}(A^TA)} \end{aligned} \]

其中 \(\lambda_{\max}(A^TA)\) 表示 \(A^TA\) 的最大特征值.

证明 \(A=0\) 时显然成立;对于 \(1\) 范数,我们从结论出发,发现 \(\|A\|_1\) 是它所有列向量的 \(1\) 范数的最大值,因此我们取

\[A= [a_1,\cdots,a_n],\quad \delta = \max_{1\le j\le n}\|a_j\|_1 \]

则任意 \(x\in\mathbb{R}^n,\ \|x\|_1=1\)

\[\|Ax\|_1 = \left\|\sum_{j=1}^nx_ja_j\right\|_1 \le \sum_{j=1}^n|x_j|\|a_j\|_1 \le \left(\sum_{j=1}^n|x_j|\right)\max_{1\le j\le n}\|a_j\|_1 = \delta \]

\(\delta\) 是第 \(j_0\) 列的范数,可以取 \(e_{j_0}\) ,这样

\[\|e_{j_0}\| = 1,\quad \|Ae_{j_0}\| = \delta \]

因此可以取得最大值 \(\delta\) .

对于 \(\infty\) 范数,我们从结论出发,发现 \(\|A\|_{\infty}\) 是它的每行元素绝对值和的最大值,可以这样考虑:

\[\|Ax\|_{\infty} = \left\|\left(\sum_{j=1}^na_{1j}x_j,\cdots,\sum_{j=1}^na_{nj}x_j\right)^T\right\|_{\infty} \]

因为 \(x_j\) 的符号可以根据 \(a_{ij}\) 调整,使得 \(a_{ij}x_j\ge 0\) ,这样我们只需要取 \(\sum_{j=1}^na_{ij}x_j\) 中的最大值,记为 \(\eta\) , 这意味着

\[\|Ax\|_{\infty} \le \max_{1\le i\le n}\sum_{j=1}^na_{ij}x_j \le \max_{1\le i\le n}\sum_{j=1}^n|a_{ij}| = \eta \]

设最大值在 \(i=i_0\) 处取得,则我们取 \(x = (\mathrm{sgn}(a_{i_0,1}),\cdots,\mathrm{sgn}(a_{i_0,n}))^T\) ,则有

\[\|x\|_{\infty} = 1,\quad \|Ax\|_{\infty} = \eta \]

因此可以取得最大值 \(\eta\) .

对于 \(2\) 范数,应用向量范数有

\[\|A\|_2 = \max_{\|x\|_2=1}\|Ax\|_2 = \max_{\|x\|_2=1}\left(x^TA^TAx\right)^{\frac{1}{2}} \]

注意到 \(A^TA\) 对称半正定,因而有特征值

\[\lambda_1 \ge \lambda_2\ge \cdots \ge \lambda_n \ge 0 \]

和对应的正交标准特征向量 \(v_1,v_2,\cdots,v_n\in\mathbb{R}^n\) ,则任意 \(\|x\|_2=1,\ x\in\mathbb{R}^n\)

\[x = \sum_{i=1}^n\alpha_iv_i,\quad \sum_{i=1}^n\alpha_i^2 = 1 \]

从而有

\[x^TA^TAx = \sum_{i=1}^n\lambda_i\alpha_i^2 \le \lambda_1 \]

另一方面,取 \(x=v_1\)

\[x^TA^TAx = v_1^TA^TAv_1 = v_1^T\lambda_1v_1 = \lambda_1 \]

因此可以取得最大值 \(\lambda_1\) .

定理 2.1.5\(A\in\mathbb{R}^{n\times n}\) ,则

  • \(\|A\|_2 = \max\left\{\left|y^TAx\right|:x,y\in\mathbb{C}^n,\ \|x\|_2=\|y\|_2=1\right\}\)

  • \(\|A^T\|_2 = \|A\|_2 = \sqrt{\|A^TA\|_2}\)

  • 对任意 \(n\) 阶正交阵 \(U,V\) ,有 \(\|UA\|_2=\|AV\|_2 = \|A\|_2\)

证明 我们先证明小于关系,再证明可以取得最值

\[\left|y^TAx\right| \le \left|y^T\right|\|Ax\|_2 = \|Ax\|_2 \]

\(x_0\in\mathbb{R}^n,\ \|x_0\|_2 = 1,\ \|A\|_2 = \|Ax_0\|_2\) ,取 \(y=Ax_0/\|A\|_2,\ \|y\|_2=1\) ,则有

\[\left|y^TAx_0\right| = \left|(Ax_0)^TAx_0\right|/\|A\|_2 = \|A\|_2 \]

从而可以取得最大值 \(\|A\|_2\) .

\(\mathbb{R}^{n\times n}\) 上另一个常用的矩阵范数为

\[\|A\|_F = \left(\sum_{i,j=1}^n|a_{ij}|^2\right)^{\frac{1}{2}} \]

称为 Frobenius 范数,它是向量 \(2\) 范数的自然推广.

定义 2.1.4\(A\in\mathbb{R}^{n\times n}\) ,则称

\[\rho(A) = \max\{|\lambda|:\lambda\in\lambda(A)\} \]

\(A\) 的谱半径,这里 \(\lambda(A)\) 表示 \(A\) 的特征值全体.

定理 2.1.6\(A\in\mathbb{R}^{n\times n}\) ,则有

  • \(\mathbb{C}^{n\times n}\) 上的任意矩阵范数 \(\|\cdot\|\)

\[\rho(A) \le \|A\| \]

  • 对任意 \(\epsilon>0\) ,存在 \(\mathbb{C}^{n\times n}\) 上的算子范数 \(\|\cdot\|\) 使得

\[\|A\|\le \rho(A) + \epsilon \]

这说明谱半径是所有矩阵范数的下确界.

证明 注意到 \(\rho(A)\) 是特征值 \(\lambda\) 的绝对值,我们取特征向量 \(x\in\mathbb{C}^{n\times n}\) ,则有

\[\rho(A)\left\|xe_1^T\right\| = \left\|\lambda xe_1^T\right\| = \left\|Axe_1^T\right\| \le \|A\|\left\|xe_1^T\right\| \]

从而有

\[\rho(A) \le \|A\| \]

第二部分应用若当标准型定义满足条件的算子范数,事实上有非奇异矩阵 \(P\in\mathbb{C}^{n\times n}\) 使得

\[P^{-1}AP = \left( \begin{matrix} \lambda_1 & \delta_2\\ & \lambda_2 & \delta_3\\ & & \ddots & \ddots\\ & & & \lambda_{n-1} & \delta_{n}\\ & & & & \lambda_n \end{matrix} \right) \]

其中 \(\delta_i = 0,1\) ,即为若当标准型。对任意 \(\epsilon>0\) ,我们作微小扰动 \(D_{\epsilon} = \mathrm{diag}(1,\epsilon,\cdots,\epsilon^{n-1})\) ,则有

\[D_{\epsilon}^{-1}P^{-1}APD_{\epsilon} = \left( \begin{matrix} \lambda_1 & \epsilon\delta_2\\ & \lambda_2 & \epsilon\delta_3\\ & & \ddots & \ddots\\ & & & \lambda_{n-1} & \epsilon\delta_{n}\\ & & & & \lambda_n \end{matrix} \right) \]

定义范数

\[\|G\|_{\epsilon} = \left\|D_{\epsilon}^{-1}P^{-1}GPD_{\epsilon}\right\|_{\infty},\quad G\in\mathbb{C}^{n\times n} \]

则容易验证这是矩阵范数,并且

\[\|A\|_{\epsilon} = \left\|D_{\epsilon}^{-1}P^{-1}APD_{\epsilon}\right\|_{\infty} = \max_{1\le i\le n}(|\lambda_i|+|\epsilon\delta_i|) \le \rho(A) + \epsilon \]

其中假定 \(\delta_0 = 0\) .

定理 2.1.7\(A\in\mathbb{C}^{n\times n}\) ,则

\[\lim_{k\to\infty} A^k = 0\ \Leftrightarrow\ \rho(A) < 1 \]

证明 首先,如果 \(A^k\to 0\) ,考虑到 \(\lambda\in\lambda(A)\)\(\lambda^k\in\lambda\left(A^k\right)\) ,则

\[\rho(A)^k \le \rho\left(A^k\right) \le \left\|A^k\right\|_2 \to 0 \]

从而只能有 \(\rho(A)<1\) ;反之,取 \(\epsilon = 1-\rho(A)>0\) ,则有算子范数 \(\|\cdot\|\) 使得

\[\|A\| \le \rho(A) + \dfrac{\epsilon}{2} = 1 \]

从而有

\[\left\|A^k\right\| \le \|A\|^k \to 0 \]

即证.

定理 2.1.8\(A\in\mathbb{C}^{n\times n}\) ,则

  • \(\sum_{k=0}^{\infty}A^k\) 收敛当且仅当 \(\rho(A)<1\) .
  • \(\sum_{k=0}^{\infty}A^k\) 收敛,则

\[\sum_{k=0}^{\infty}A^k = (I-A)^{-1} \]

且存在 \(\mathbb{C}^{n\times n}\) 上的算子范数 \(\|\cdot\|\) 使得

\[\left\|(I-A)^{-1}-\sum_{k=0}^mA^k\right\| \le\dfrac{\|A\|^{m+1}}{1-\|A\|} \]

对任意 \(m\in\mathbb{N}\) 成立.

证明 先计算矩阵和

\[S_n = \sum_{k=0}^nA^k\ \Rightarrow\ (I-A)S_n = I - A^{n+1}\ \Rightarrow\ S_n = (I-A)^{-1}\left(I - A^{n+1}\right) \]

则第一部分显然;当 \(S_n\) 收敛,必有 \(S = (I-A)^{-1}\) 存在,并且

\[\left\|(I-A)^{-1}-\sum_{k=0}^mA^k\right\| = \|S-S_m\| = \left\|(I-A)^{-1}A^{m+1}\right\| \le \dfrac{\|A\|^{m+1}}{1-\|A\|} \]

即证.

推论 2.1.1\(\mathbb{C}^{n\times n}\) 上的算子范数 \(\|\cdot\|\) 满足 \(\|I\|=1\) ,且 \(A\in\mathbb{C}^{n\times n}\)\(\|A\|<1\) ,则 \(I-A\) 可逆,且有

\[\left\|(I-A)^{-1}\right\| \le\dfrac{1}{1-\|A\|} \]

证明\(\rho(A)\le\|A\|<1\) ,则 \((I-A)^{-1}\) 存在,满足上面定理条件,令 \(m=0\) 则有

\[\left\|(I-A)^{-1}\right\|-\|I\| \le \left\|(I-A)^{-1}-I\right\| \le \dfrac{\|A\|}{1-\|A\|} \]

从而有

\[\left\|(I-A)^{-1}\right\| \le 1 + \dfrac{\|A\|}{1-\|A\|} = \dfrac{1}{1-\|A\|} \]

即证.

线性方程组的敏度分析

考虑非奇异线性方程组 \(Ax=b\) 对系数扰动的敏感性,设有

\[(A+\delta A)(x+\delta x) = b + \delta b \]

则代入 \(b = Ax\)

\[(A+\delta A)\delta x = \delta b - \delta Ax \]

由于 \(A\) 非奇异,因此 \(A+\delta A\) 非奇异,这是由 \(\det\) 的连续性得到的;事实上,只要 $ \left|A^{-1}\right||\delta A|<1 $ ,就有 \(A+\delta A\) 可逆,因为

\[A+\delta A = A\left(I+A^{-1}\delta A\right) \]

即有 \(A+\delta A\) 可逆等价于 \(I+A^{-1}\delta A\) 可逆;而且

\[\left\|\left(I+A^{-1}\delta A\right)^{-1}\right\| \le \dfrac{1}{1-\left\|A^{-1}\right\|\|\delta A\|} \]

因此此时 \(A+\delta A\) 可逆;我们考虑

\[\delta x = \left(A+\delta A\right)^{-1}(\delta b-\delta Ax) = \left(I+A^{-1}\delta A\right)^{-1}A^{-1}(\delta b-\delta Ax) \]

取范数就有

\[\|\delta x\| \le \left\|\left(I+A^{-1}\delta A\right)^{-1}\right\|\left\|A^{-1}\right\|(\|\delta b\|+\|\delta A\|\|x\|) \le \dfrac{\left\|A^{-1}\right\|}{1-\left\|A^{-1}\right\|\|\delta A\|}(\|\delta b\|+\|\delta A\|\|x\|) \]

注意到 \(\|b\|\le \|A\|\|x\|\) ,则有

\[\dfrac{\|\delta x\|}{\|x\|} \le \dfrac{\left\|A^{-1}\right\|\|A\|}{1-\left\|A^{-1}\right\|\|\delta A\|}\left(\dfrac{\|\delta A\|}{\|A\|}+\dfrac{\|\delta b\|}{\|b\|}\right) \]

从而我们有如下定理:

定理 2.2.1\(\|\cdot\|\)\(\mathbb{R}^{n\times n}\) 上的一个满足条件 \(\|I\|=1\) 的矩阵范数,且 \(A\in\mathbb{R}^{n\times n}\) 可逆, \(b\in\mathbb{R}^n\) 非零;再假定 \(\delta A\in\mathbb{R}^{n\times n}\) 满足 $ \left|A^{-1}\right||\delta A|<1 $ ,若 \(x\)\(x+\delta x\) 分别是线性方程组

\[Ax = b,\quad (A+\delta A)(x+\delta x) = b + \delta b \]

的解,则

\[\dfrac{\|\delta x\|}{\|x\|} \le \dfrac{\kappa(A)}{1-\kappa(A)\dfrac{\|\delta A\|}{\|A\|}}\left(\dfrac{\|\delta A\|}{\|A\|}+\dfrac{\|\delta b\|}{\|b\|}\right) \]

其中 \(\kappa(A)=\left\|A^{-1}\right\|\|A\|\) .

? 当 \(\|\delta A\|/\|A\|\) 较小时,有

\[\dfrac{\kappa(A)}{1-\kappa(A)\dfrac{\|\delta A\|}{\|A\|}} \approx \kappa(A) \]

从而有

\[\dfrac{\|\delta x\|}{\|x\|} \lessapprox \kappa(A)\left(\dfrac{\|\delta A\|}{\|A\|}+\dfrac{\|\delta b\|}{\|b\|}\right) \]

因此相对误差由 \(\kappa(A)\) 和初始条件的相对扰动限制.

定义 2.2.1 称数 \(\kappa(A)=\|A\|\left\|A^{-1}\right\|\) 为线性方程组 \(Ax = b\) 的条件数.

由于范数的等价性,因此不同范数下的条件数等价.

推论 2.2.1\(\|\cdot\|\)\(\mathbb{R}^{n\times n}\) 上的一个满足条件 \(\|I\|=1\) 的矩阵范数,且 \(A\in\mathbb{R}^{n\times n}\) 可逆, \(b\in\mathbb{R}^n\) 非零;再假定 \(\delta A\in\mathbb{R}^{n\times n}\) 满足 $ \left|A^{-1}\right||\delta A|<1 $ ,则有

\[\dfrac{\left\|\left(A+\delta A\right)^{-1}-A^{-1}\right\|}{\left\|A^{-1}\right\|} \le \dfrac{\kappa(A)}{1-\kappa(A)\dfrac{\|\delta A\|}{\|A\|}}\dfrac{\|\delta A\|}{\|A\|} \]

证明 利用之前得到的

\[\left\|(I-A)^{-1}-I\right\| \le \dfrac{\|A\|}{1-\|A\|} \]

我们有

\[\left\|(A+\delta A)^{-1}-A^{-1}\right\| \le \left\|\left(I+A^{-1}\delta A\right)^{-1}-I\right\|\left\|A^{-1}\right\| \le \dfrac{\left\|A^{-1}\delta A\right\|}{1-\left\|A^{-1}\delta A\right\|}\left\|A^{-1}\right\| \le \dfrac{\left\|A^{-1}\right\|\|\delta A\|}{1-\left\|A^{-1}\right\|\|\delta A\|}\left\|A^{-1}\right\| \]

两边同时除以 \(\left\|A^{-1}\right\|\) 得到

\[\dfrac{\left\|\left(A+\delta A\right)^{-1}-A^{-1}\right\|}{\left\|A^{-1}\right\|} \le \dfrac{\kappa(A)}{1-\kappa(A)\dfrac{\|\delta A\|}{\|A\|}}\dfrac{\|\delta A\|}{\|A\|} \]

即证.

定理 2.2.2\(A\in\mathbb{R}^{n\times n}\) 可逆,则

\[\min\left\{\dfrac{\|\delta A\|_2}{\|A\|_2}:\exist(A+\delta A)^{-1}\right\} = \dfrac{1}{\|A\|_2\left\|A^{-1}\right\|_2} = \dfrac{1}{\kappa_2(A)} \]

这说明当 \(A\) 十分病态时,它与一个奇异矩阵十分靠近.

证明 由前容易发现当 $ \left|A^{-1}\right||\delta A|<1 $ 时, \(A+\delta A\) 可逆,因而 \(1/\kappa_2(A)\) 是一个下界,我们说明可以取到这个下界:取 \(x\in\mathbb{R}^n\) ,使得 \(\left\|A^{-1}x\right\|_2 = \left\|A^{-1}\right\|_2,\ \|x\|_2=1\) ,令

\[y = \dfrac{A^{-1}x}{\left\|A^{-1}x\right\|_2},\quad \delta A = -\dfrac{xy^T}{\left\|A^{-1}\right\|_2} \]

则有 \(\|y\|_2=1\) ,且

\[(A+\delta A)y = \dfrac{x}{\left\|A^{-1}x\right\|_2} - \dfrac{x}{\left\|A^{-1}\right\|_2} = 0\\ \|\delta A\|_2 = \max_{\|z\|_2=1}\left\|\dfrac{xy^T}{\left\|A^{-1}\right\|_2}z\right\|_2 = \dfrac{\|x\|_2}{\left\|A^{-1}\right\|_2}\max_{\|z\|_2=1}\left|y^Tz\right| = \dfrac{1}{\left\|A^{-1}\right\|_2} \]

因而我们取到了这个下界,即证.

基本运算的舍入误差分析

关于浮点数系统的部分我们在数值分析中进行讨论,在这里只列出相关定理.

定理 2.3.1\(m\le \|x\|\le M\) ,其中 \(m,M\) 是有效数字,则

\[\mathrm{fl}(x) = x(1+\delta),\quad |\delta| \le \epsilon_u \]

其中 \(\epsilon_u\) 为舍入单位,

\[\epsilon_u = \left\{ \begin{aligned} &\dfrac{1}{2}\beta^{1-t},\quad &舍入法\\ &\beta^{1-t},\quad &截断法 \end{aligned} \right. \]

这里利用相对误差分析即可.

定理 2.3.2\(a,b\in\mathcal{F}\) ,则

\[\mathrm{fl}(a\odot b) = (a\odot b)(1+\delta),\quad |\delta|\le \epsilon_u \]

四则运算的误差界.

定理 2.3.3\(|\delta_i|\le \epsilon_u,\ n\epsilon_u\le 0.01\) ,则

\[1-n\epsilon_u \le \prod_{i=1}^n(1+\delta_i) \le 1+1.01n\epsilon_u \]

此定理在数值分析中有详细证明.

列主元 Gauss 消去法的舍入误差分析

这里进行向后误差分析:首先考虑三角分解的舍入误差

引理 2.4.1\(n\times n\) 浮点数矩阵 \(A=[a_{ij}]\) 有三角分解,且 \(1.01n\epsilon_u\le 0.01\) ,则三角分解满足

\[\widetilde{L}\widetilde{U} = A + E,\quad |E| \le 2.05n\epsilon_u|\widetilde{L}||\widetilde{U}| \]

分析较为繁琐,我们省略这部分.

注意到交换矩阵的行或列不会引入误差,因此有

推论 2.4.1\(n\times n\) 浮点数矩阵 \(A\) 非奇异,且 \(1.01n\epsilon_u\le 0.01\) ,则列主元 Gauss 消去法计算得到的分解有

\[\widetilde{L}\widetilde{U} = \widetilde{P}A + E,\quad |E| \le 2.05n\epsilon_u|\widetilde{L}||\widetilde{U}| \]

这是直接推论,接着就是求解三角形方程组.

引理 2.4.2\(n\times n\) 浮点数三角矩阵 \(S\) 非奇异,且 \(1.01n\epsilon_u\le 0.01\) ,则三角形方程组 \(Sx=b\) 的计算解 \(\widetilde{x}\) 满足

\[(S+H)\widetilde{x} = b,\quad |H| \le 1.01n\epsilon_u|S| \]

这种证明看一看就好.

应用上述引理到三角形方程组

\[\widetilde{L}y = \widetilde{P}b,\quad \widetilde{U}x = y \]

得到计算解满足

\[(\widetilde{L}+F)(\widetilde{U}+G)\widetilde{x} = \widetilde{P}b,\quad |F|\le 1.01n\epsilon_u|\widetilde{L}|,\ |G|\le 1.01n\epsilon_u|\widetilde{U}| \]

通过代入估计得到

\[|\delta A|\le 4.09n\epsilon_u\widetilde{P}^T|\widetilde{L}||\widetilde{U}| \]

注意到 \(\widetilde{L}\) 元素绝对值不大于 \(1\) ,则 \(\|\widetilde{L}\|_{\infty}\le n\) ;为了给出 \(\|\widetilde{U}\|_{\infty}\) 的估计,我们定义

\[\rho = \max_{i,j}|\widetilde{u}_{ij}|/\max_{i,j}|a_{ij}| \]

称为列主元 Gauss 消去法的增长因子.

定理 2.4.1\(n\times n\) 浮点数矩阵 \(A\) 非奇异,且 \(1.01n\epsilon_u\le 0.01\) ,则列主元 Gauss 消去法的计算解满足

\[(A+\delta A)\widetilde{x} = b,\quad \|\delta A\|_{\infty}/\|A\|_{\infty} \le 4.09n^3\rho\epsilon_u \]

这是上面过程的直接推论,从而我们可以由 \(A\) 的敏度分析来得到解的敏度.

计算解的精度估计和迭代改进

假设一种计算线性方程组 \(Ax=b\) 的算法得到的计算解为 \(\hat{x}\) ,令

\[r = b - A\hat{x}\ \Rightarrow\ r = Ax - A\hat{x} = A(x-\hat{x}) \]

从而有

\[\|x-\hat{x}\| = \left\|A^{-1}r\right\| \le \left\|A^{-1}\right\|\|r\| \]

又有

\[\|b\| \le \|A\|\|x\|\ \Rightarrow\ \dfrac{1}{\|x\|} \le \dfrac{\|A\|}{\|b\|} \]

我们得到

\[\dfrac{\|x-\hat{x}\|}{\|x\|} \le \dfrac{\left\|A^{-1}\right\|\|r\|}{\|x\|} \le \left\|A^{-1}\right\|\|A\|\dfrac{\|r\|}{\|b\|} \]

在上式中取 \(\infty\) 范数有

\[\dfrac{\|x-\hat{x}\|_{\infty}}{\|x\|_{\infty}} \le \kappa_{\infty}(A)\dfrac{\|r\|_{\infty}}{\|b\|_{\infty}} \]

这样我们可以通过计算右式来进行精度估计.

注意到 \(\left\|A^{-1}\right\|_{\infty}\) 是较难计算的,因此我们给出 LAPACK 采用的一种优化方法:

盲人爬山法

? 设 \(B\in\mathbb{R}^{n\times n}\) ,我们估计 \(\|B\|_1\) ,定义

\[f(x) = \|Bx\|_1,\quad \mathcal{D} = \{x\in\mathbb{R^{n}}:\|x\|_1\le 1\} \]

则可以证明 \(f\) 是凸函数, \(\mathcal{D}\) 是凸集,并且 \(\|B\|_1\) 就是 \(f\)\(\mathcal{D}\) 上的最大值.

\(f\)\(x\) 处的梯度 \(\nabla f(x)\) 存在,则由凸函数的性质有

\[f(y) \ge f(x) + \nabla f(x)(y-x),\quad y\in\mathbb{R}^n \]

即凸函数总是在它的切线上方;若有 \(x_0\in\mathbb{R}^n,\ \|x_0\|_1=1\) ,使得 \(Bx_0\) 的任意分量非零,令

\[\xi_i = \mathrm{sgn}\left(\sum_{j=1}^nb_{ij}x_j\right) \]

则在 \(x_0\) 附近将 \(f(x)\) 表示为

\[f(x) = \sum_{i=1}^n\sum_{j=1}^n\xi_ib_{ij}x_j \]

因此有

\[\nabla f(x_0) = \left(\dfrac{\partial f(x_0)}{\partial x_1},\cdots,\dfrac{\partial f(x_0)}{\partial x_n}\right) = v^TB = \left(B^Tv\right)^T,\quad v = (\xi_1,\cdots,\xi_n)^T \]

这里 \(v\)\(\omega\) 的符号向量;再令

\[\omega = Bx_0,\quad z = B^Tv \]

分别代表 \(f(x_0)\)\(\nabla f(x_0)\) 的转置.

定理 2.5.1 根据上面得到的关系,我们有

  • \(\|z\|_{\infty}\le z^Tx_0\) ,则 \(\|\omega\|_1=\|Bx_0\|_1\) 是局部极大值
  • \(\|z\|_{\infty} > z^Tx_0\) ,则 \(\|Be_j\|_1 > \|Bx_0\|_1\) ,其中 \(j\) 满足

\[|z_j| = \|z\|_{\infty} \]

证明\(x_0\) 附近可将 \(f\) 看作线性函数

\[f(x) = \|\omega\|_1 + z^T(x-x_0) \]

\(\|z\|_{\infty}\le z^Tx_0\) , 对于\(\|x\|_1\le 1\) ,有

\[z^T(x-x_0) = z^Tx-z^Tx_0 \le \|z\|_{\infty}\|x\|_1 - z^Tx_0 \le \|z\|_{\infty} - z^Tx_0 \le 0 \]

因而在 \(x_0\) 附近 \(f\) 都不大于 \(\|\omega\|_1\) ;反之,对于满足的 \(j\)

\[\begin{aligned} f(e_j) &\ge \|\omega\|_1 + z^T(e_j-x_0) = \|\omega\|_1 + z^Te_j-z^Tx_0 \\ &= \|\omega\|_1 + |z_j| - z^Tx_0\\ &= \|\omega\|_1 + \|z\|_{\infty} - z^Tx_0 > \|\omega\|_1 \end{aligned} \]

即证.

我们可以应用该定理设计算法求解 \(\left\|A^{-1}\right\|_{\infty}\) 的估计值:设有分解 \(PA = LU\) ,只需计算 \(\|B\|_{1},\ B = A^{-T}\) 即可,此时

\[\omega = Bx,\quad z = B^Tv\ \Leftrightarrow\ A^T\omega = x,\quad Az = v \]

因此,给定初始的 \(x_0\) ,可以解出 \(\omega\) ,然后计算 \(\omega\) 的符号向量 \(v\) ,解出梯度转置 \(z\) ,根据上述定理判断是否达到最大值,若未达到最大值就调整 \(x\) ,循环计算直到达到最大值.

注意到一共只有 \(n\)\(e_j\) ,因此循环必然在有限步后终止.

迭代改进

如果计算解 \(\hat{x}\) 精度太低,同时 \(A\) 不是非常病态,则可应用 Newton 迭代法改进精度

  • 计算 \(r = b-A\hat{x}\)
  • 求解 \(Az = r\)
  • 计算 \(x = \hat{x} + z\)

重复迭代直到相对误差足够小.

相关