病态方程组

更新时间:2022-08-25 13:45

由实际问题得到的方程组的系数矩阵或者常数向量的元素,本身会存在一定的误差;这些初始数据的误差在计算过程中就会向前传播,从而影响到方程组的解。病态方程组是指因系数的很小改变却导致解改变很大的方程组,称相应的系数矩阵A为病态矩阵。病态方程组对任何算法都将产生数值不稳定性。对病态方程组有四种处理原则:采用高精度的算术运算;采用预处理方法;采用特殊的数值解法或寻找出现病态的原因,改变原问题的提法。

预备知识

扰动

设方程组为Ax=b,系数矩阵A和常数向量b的扰动分别记为:和,则实际求解的方程组为。

条件数

求解线性方程组Ax=b时,设A是n阶非奇异矩阵,‖·‖为矩阵的任一种从属范数,则 ,称为矩阵A的条件数,其中 是A的逆矩阵。

定义

病态方程组是指因系数的很小改变却导致解改变很大的方程组。病态的另外一个解释是很大范围的解都能近似满足方程组。因为舍入误差会使系数有一些小的改变,那么对于病态方程组,这些人为的改变会导致解有很大的误差。

表述一

设方程组为Ax=b,系数矩阵A和常数向量b的扰动分别记为:和,如果和很小,而很大,则称方程组Ax=b为病态(ill-conditioned)方程组,称系数矩阵A为关于求解方程组或求逆的病态矩阵;反之,如果和微小时,也很微小,则称方程组Ax=b为良态(well-conditioned)方程组,称系数矩阵A为关于求解方程组或求逆的良态矩阵。病态方程组对任何算法都将产生数值不稳定性(如用LU分解法求解线性方程组时,更换主元有可能使解的精确度大大下降)。

表述二

求解线性方程组Ax=b时,设A是n阶非奇异矩阵,当条件数Cond(A)比较大时,A和b的小扰动会引起解的较大误差,所以条件数Cond(A)刻画了方程组Ax=b的性态。如果条件数比较大,就说方程组是“病态”的;如果条件数比较小,就说方程组是“良态”的;当然,病态和良态是相对的。

典例

设有方程组:

易得其精确解为 。

若常数项有一个扰动,得到方程组:

则其解为 。

可见A或b中元素的0.0001的微小变化会导致方程组解的巨大差异,这样的方程组就是“病态”方程组,可以利用范数来描述向量和矩阵的扰动误差。

判断和发现

对于病态的线性方程组,其求解自然要难于良态的方程组,或要采取特殊的方法才能求出有用的解。在求解以前,怎样判断和发现Ax=b是病态的呢?

一般方法

根据病态方程组的定义,可以通过计算条件数来判断。由于定义中涉及A ,故计算量太大而通常不被采用.人们经常利用的是估计条件数的方法。

特殊情况

在特殊情况下,可以依据下面出现的情况来判断:

(1)当det(A)相对来说很小或者A的某些行(或列)近似线性相关时,Ax=b可能是病态的;

(2)如果用选主元消去法求解Ax=b,在A的约化过程中出现小的主元,Ax=b可能是病态的;

(3)当解Ax=b时出现一个很大的解,Ax=b可能是病态的;

(4)当系数矩阵A的元素数量级相差很大,并且无一定规则时,Ax=b可能是病态的。

四种处理原则

若发现Ax=b可能是病态的.通常有四种处理原则:

采用高精度的算术运算

如利用双倍字长进行计算,以便改善和减轻矩阵病态的影响,但计算时间将大大增加。

采用预处理方法

寻求非奇异矩阵P,Q,使求解Ax=b(设A为n维非奇异方阵)转化为求解 或,其中 ,且改善A的条件数 。于是,可先求解 ,再求解 。当A为对称正定矩阵时,一般选取P,Q为对角阵三角阵

对病态线性方程组Ax=b进行预处理,如取P,Q为对角阵,称为平衡方法,即当系数矩阵A的元素数量级相差很大时,可采用行均衡或列均衡方法,这时矩阵A的条件数可能得到改善。所谓行均衡,是在解Ax=b之前,对A的每一行都乘以适当的数,使A所有的行按照某种范数大体上有相同的长度。

设 非奇异,计算 ,令 于是,求解Ax=b化为求解 或 ,这时有 。

采用特殊的数值解法

采用某些特殊的数值方法求解。

找病因改问题

寻找出现病态的原因,改变原问题的提法。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}