6.9 病态方程组和迭代改善法
6.9.1 病态方程组
考虑线性方程组
(6.9.1)
假设为非奇异矩阵,
为方程组的解。在应用问题归结为求解方程组
时,其系数矩阵
和
可能有某些观测误差,或者
,
是计算的结果,从而包含有舍入误差。下面我们研究数据
或
的误差对方程组解
的影响。
例20 设有方程组
其解为,现考虑常数项有微小的误差,即
,其中
,得到一个扰动方程组
其解为。
此例说明,方程组常数项分量只有微小变化(1/100),而方程组的解有较大的变化。也就是说这个方程组的解对于问题的数据b很灵敏。这样的方程组就是病态方程组。
下面我们找出能用来刻画方程组病态性质的量,为此,考察(或b)微小误差对解的影响。
首先考察常数项b的微小误差对解的影响。设是精确的,b是有误差的(或扰动)
,显然,方程组
的解与
有差别,记为
,即有
即
于是
(6.9.2)
另一方面,由,则有
或
(6.9.3)
由(6.9.2)式及(6.9.3)式即得:
定理17 (扰动对解的影响)
(1)为精确解,
为非奇异矩阵;
(2)且设
则有
(6.9.4)
式(6.9.4)说明,当有一相对误差时,引起
解的变化。式(6.9.4)给出了引起解相对误差的一个上界,且引起的解的相对误差可能是常数项相对误差的
倍。因此,引起的解的相对误差的大小与数
大小有关。
下面考察扰动对
解
的影响。
设有微小误差(扰动)
,即
是精确的,记
的解为
,即
由于上式即
(6.9.5)
设,则由定理9,
为非奇异矩阵且有
(6.9.6)
由式(6.9.5)
利用式(6.9.6),则
(6.9.7)
定理18 (扰动对解的影响)
(1)设,其中
为非奇异矩阵,
为精确解;
(2)设,且设
则的微小误差引起解的相对误差有估计式(6.9.7),且式(6.9.7)说明,如果
数越大,
的微小相对误差可能引起的解的相对误差就愈大,因而
数的大小刻画了方程组的解对问题数据
(或
)的灵敏程度。
定义8 (矩阵的条件数)
设为非奇异矩阵,称
为矩阵的条件数(其中
取
或1或2)。
定义9(病态方程组)
设,其中
为非奇异矩阵,如果
(相对大的条件数)称
为病态方程组,如果
相对的小,称
为良态方程组。
的条件数愈大,方程组病态愈严重。
要注意,方程组的病态性质,是方程组本身的特性。对于病态的方程组用一般的计算方法不容易求得较精确的解。且方程组病态愈严重,求解愈困难。
显然,对任何非奇异矩阵,都有
例21 设,试计算
。
解
且
所以
方程组为病态方程组。
定理19(事后误差估计)
(1)设为非奇异矩阵,且
是精确解,
;
(2)设为
的一个近似解,剩余向量
,则有误差估计
证明 利用及
再取范数,即可得证。
由定理19可知,近似解的精度不仅依赖于剩余向量
的大小,且还依赖于
的条件数。如果
是病态方程组,即使有很小的剩余向量,也不能保证
是高精度的近似解。
6.9.2 迭代改善法
设有方程组,其中
为非奇异阵,且若方程组不过分病态,又设用高斯消去法(或部分选主元消去法)求得计算解
(精度不高),我们希望获得方程组高精度的解,一般可采用下述的迭代改善法,用来改善
的精度。
设为用高斯法求得计算解,计算剩余向量
(6.9.8)
求解
(6.9.9)
且计算
(6.9.10)
显然,如果计算和
没有误差,则
是方程组
的精确解。
实际上
但实际计算时,由于有舍入误差,因此我们得到是一个近似解(要求用双精度计算
)。
对重复上述过程(6.9.8)~(6.9.10),就求得
及
,
,即可求得方程组的一个近似解序列
。当
不是过分病态时,通常
很快收敛到方程组的解
;当
过分病态时,
可能不收敛于
。
例22 用迭代改善法解
解 方程组精确解
且有
于是
因此,方程组为病态方程组。
(1)用高斯消去法解(用具有舍入的四位浮点数进行计算)且实现
分解,即
(2)计算。
求解,或求解
(3)计算。
(4)计算。
迭代改善法:设,
为非奇异阵且方程组不是过分病态。
用数组保存
元素,用数组
保存三角矩阵
,用
记录行交换信息,用
存放
及
,用数组
存放
或
。
(1)用高斯消去法(或列主元消去法)计算近似解且实现分解
(或
)。
(2)对于
①计算(双精度);
②求解(或
);(解两个三角形方程组)
③计算。
可以用 控制迭代。