对于线型方程组:
Ax=b
我们能够使用计算机解出线型方程组,但是这仍然不够。因为不知道这个解是否是正确的。在之前的学习中,我们解出一个方程之后要把答案带入进行检验。
对于一次方程 ax=b 来说,设 x∗ 是 ax=b 的精确解, x~ 是其计算解,
若 ∣b−ax~∣<ε,则 x~ 是 ax=b 的近似解。
证明:
x~ 是 ax=b 的近似解指的是 x~−x∗<ε
∣b−ax~∣=∣ax∗−ax~∣=∣a∣⋅∣x~−x∗∣<ε
∣x~−x∗∣<∣a∣ε
那下面的说法能否成立呢?
设 x∗ 是 Ax=b 的精确解, x~ 是其计算解,若 ∣b−Ax~∣<ε,则 x~ 是 ax=b 的近似解。
1. 残向量
同样为了检验方程组的计算解是否为原方程组的近似解,可以尝试将计算解代入方程组中,假设计算解为 x~ ,则残向量为: r=b−Ax~ ,我们使用残向量来评价解的误差。
例如:
对于以下线性方程组:
(1.0000.4992.0001.001)(x1x2)=(3.0001.500)
求出的计算解为 x~=(2.000,0.500)T,该解是否可靠?
准确解是 x∗=(1,1)T ,但是求出的计算解为 x~=(2.000,0.500)T ,残向量为 r=(0.000,0.0015)T ,但是误差向量并不是一个很小的量 e=x∗−x~=(11)−(2.00.5)=(−10.5)
故而,残向量很小时,计算解与准确解之间仍会相差很大。 所以不能只根据残向量的大小判断解的可靠性。
2. 误差向量和范数
误差向量
误差向量定义: e=x∗−x~=⎝⎜⎜⎜⎛ε1ε2⋮εn⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x1∗−x~1x2∗−x~2⋮xn∗−x~n⎠⎟⎟⎟⎞
范数
向量范数
我们想要说明上述检验方程组解的可靠性的方法是否成立,必须要定义 ∣b−Ax~∣ ,这是一个向量,回想常量的绝对值定义:
φ(x)=∣x∣=⎩⎨⎧x,x>00,x=0−x,x<0
这个绝对值函数有以下性质:
- 非负性
- 齐次性
对于任意实数 α ,有 ∣αx∣=∣α∣∣x∣
- 三角不等式
∣x+y∣≤∣x∣+∣y∣
我们对于向量的“绝对值”的定义也必须满足上面三个性质,只要满足上面的三个性质,那这个向量“绝对值”的定义就是有效的,我们称为范数。
定义:对向量 x=(x1,x2,...,xn)T ,具有如下类似性质的函数 φ(x)=φ(x1,x2,...,xn) ,成为向量 x 的范数 或 模 或 长度,记为 ∥x∥=φ(x)

常用的向量范数
因为满足以上三个性质的定义就是向量的范数,所以向量的范数可以有多种定义,常用的有如下三种:
- 1 范数
∥x∥1=∣x1∣+∣x2∣+⋯+∣xn∣
- 2 范数
∥x∥2=(x12+x22+⋯+xn2)1/2
- 无穷范数
∥x∥∞=1≤i≤nmax∣xi∣
向量是二维的时候范数的几何意义:

n=3 的时候类似。
既然向量范数有多种定义,那么是否会出现一种范数使得 ∣b−Ax~∣<ε ,而另一种范数不满足这个不等式呢?所以我们需要探究向量的不同范数之间是否有什么关系。
向量范数之间的等价关系
⎩⎨⎧l∥x∥∞≤∥x∥1≤n∥x∥∞∥x∥∞≤∥x∥2≤n∥x∥∞n1∥x∥1≤∥x∥2≤∥x∥1
它表明一个向量,若按某种范数是一个小量,那按其他任意一种范数都是一个小量。
如果无穷范数是一个小量,那根据第一个式子, 1 范数也是一个小量,根据第二个式子, 2 范数也是一个小量。
如果 1 范数是一个小量,根据第三个式子, 2 范数也是一个小量,根据第一个式子(可以变为 n1∥x∥1≤∥x∥∞≤∥x∥1 ),无穷范数也是一个小量。
同理,若 2 范数是一个小量,其他两个范数也是一个小量。
矩阵范数
为了用范数表示线型方程组解的精确度,还需要对矩阵的大小有类似的数量表征。所以引入了矩阵的范数。与向量范数的定义类似:
定义:对于 n 阶矩阵 A ,具有如下性质的函数 φ(A) ,称为矩阵 A 的范数,记为 ∥A∥=φ(A)

常用的矩阵范数
- 1 范数 ( 最大列和)
∥A∥1=1≤j≤nmax∑i=1n∣aij∣
- 2 范数
- 无穷范数 ( 最大行和)
∥A∥1=1≤i≤nmax∑j=1n∣aij∣
- F 范数 (Frobrnious 范数)
∥A∥F=(∑i=1n∑j=1n∣aij∣2)1/2
谱半径
定义:对于 n 阶矩阵 A ,具有 n 个特征值为 λ1,λ2,...,λn ,称数 ρ(A)=1≤i≤nmax∣λi∣ 为矩阵 A 的谱半径。
推论:对于矩阵 A 的任意一种范数,都有 ρ(A)≤∥A∥
原因:设 λ 为矩阵 A 相应于特征向量 μ 的特征值,则
Aμ=λμ
∥Aμ∥≤∥A∥⋅∥μ∥
∥Aμ∥=∥λμ∥=∣λ∣⋅∥μ∥
所以 ∣λ∣≤∥μ∥
3. 误差的代数表征
条件数
我们很容易计算残向量,但是一般无法得到真正解,也就是不能得到误差项量。所以希望在他们之间建立某种关系,以便使用残向量估计误差。
残向量定义:
r=b−Ax~
可以改写为:
Ax~=b−r
可以把计算解 x~ 看做 Ax=b−r 的准确解。问题变为讨论 Ax=b 的右端向量发生变化-r ,导致的解的变化x∗−x~ 的关系。
由于: Ax~=b−r,Ax∗=b
x~=A−1(b−r),x∗=A−1b
e=x∗−x~=A−1r
∥e∥=∥∥A−1r∥∥≤∥∥A−1∥∥⋅∥r∥
Ax∗=b⇒∥b∥≤∥A∥∥x∗∥
∴∥x∗∥1≤∥b∥∥A∥
因此有:
∥x∗∥∥e∥≤(∥A∥⋅∥∥A−1∥∥)∥b∥∥r∥
即 ∥x∗∥∥x∗−x~∥≤(∥A∥⋅∥∥A−1∥∥)∥b∥∥r∥
意义:解向量的相对误差不超过右端向量误差的一个倍数 k=∥A∥⋅∥∥A−1∥∥
定义:矩阵 A 的条件数定义为 cond(A)=∥A∥∥∥A−1∥∥ 。
条件数用于估计计算解的误差。有了条件数和右端向量误差就可以估计解向量的相对误差。
因为 I=AA−1 所以 ∥I∥=∥AA−1∥≤∥A∥⋅∥A−1∥
Cond(A)≥1
可知误差向量的相对误差不会比残向量的相对误差要小
例如:
对于线型方程组:
(1.0000.4992.0001.001)(x1x2)=(3.0001.500)
其中:
A=(1.0000.4992.0001.001)
A−1=(333.67−166.67−666.67333.33)
∥A∥∞=3
∥∥A−1∥∥∞=1000.34
k=∥A∥∞∥∥A−1∥∥∞=3001.02
求出的计算解为 x~=(2.000,0.500)T ,残向量为 r=(0.000,0.0015)T ,但是误差向量并不是一个很小的量 e=x∗−x~=(11)−(2.00.5)=(−10.5)
∥b∥∥r∥=30.0015=0.0005
∥x∗∥∥e∥=1
∴∥x∗∥∥e∥≤∥A∥∥∥A−1∥∥∥b∥∥r∥=3001.02∗0.0005=1.50101
因为条件数过大,所以小的残向量不能保证计算解有小的误差。
条件数的应用
矩阵的条件数,刻画了方程组的性态:
- 条件数比较大时,称矩阵为病态矩阵,相应方程组为病态方程组。
- 条件数比较小时,称矩阵为良态矩阵,相应方程组为良态方程组。
病态方程组的特征及判别:
- 系数矩阵的行或列近似线性相关
- 系数矩阵的元素数量级相差悬殊
- 解对系数矩阵元素的变化比较敏感
- 在 Gauss 消去法求解过程中,出现数量级较小的主元
- 求出的解与预期的解相差较大
求解病态方程组的措施:
- 采取高精度计算,以减少舍入误差的影响
- 采用稳定性好的列主元高斯消去算法
- 采用平衡措施,将整个方程组的系数平衡化
- 采用迭代改善技术,通过对得到的解不断地修正,得到更好的近似解
估计条件数
计算条件数需要知道 A−1 ,它的计算非常耗时,我们可以估计条件数。
估计方法:
