扰动
设方程组为
,系数矩阵A和常数向量b的扰动分别记为:和,则实际求解的方程组为。条件数
求解线性方程组
时,设A是n阶非奇异矩阵,为矩阵的任一种从属范数,则 称为矩阵A的条件数,其中 是A的逆矩阵。病态方程组是指因系数的很小改变却导致解改变很大的方程组。病态的另外一个解释是很大范围的解都能近似满足方程组。因为舍入误差会使系数有一些小的改变,那么对于病态方程组,这些人为的改变会导致解有很大的误差。
表述一
设方程组为
,系数矩阵A和常数向量b的扰动分别记为:和,如果和很小,而很大,则称方程组为病态(ill-conditioned)方程组,称系数矩阵A为关于求解方程组或求逆的病态矩阵;反之,如果和微小时,也很微小,则称方程组为良态(well-conditioned)方程组,称系数矩阵A为关于求解方程组或求逆的良态矩阵。病态方程组对任何算法都将产生数值不稳定性(如用LU分解法求解线性方程组时,更换主元有可能使解的精确度大大下降)。表述二
求解线性方程组
时,设A是n阶非奇异矩阵,当条件数比较大时,A和b的小扰动会引起解的较大误差,所以条件数刻画了方程组的性态。如果条件数比较大,就说方程组是“病态”的;如果条件数比较小,就说方程组是“良态”的;当然,病态和良态是相对的。设有方程组:
易得其精确解为。若常数项有一个扰动,得到方程组:
则其解为。可见A或b中元素的0.0001的微小变化会导致方程组解的巨大差异,这样的方程组就是“病态”方程组,可以利用范数来描述向量和矩阵的扰动误差。
对于病态的线性方程组,其求解自然要难于良态的方程组,或要采取特殊的方法才能求出有用的解。在求解以前,怎样判断和发现
是病态的呢?一般方法
根据病态方程组的定义,可以通过计算条件数来判断。由于定义中涉及A ,故计算量太大而通常不被采用.人们经常利用的是估计条件数的方法。
特殊情况
在特殊情况下,可以依据下面出现的情况来判断:
(1)当
相对来说很小或者A的某些行(或列)近似线性相关时,可能是病态的;(2)如果用选主元消去法求解
,在A的约化过程中出现小的主元,可能是病态的;(3)当解
时出现一个很大的解,可能是病态的;(4)当系数矩阵A的元素数量级相差很大,并且无一定规则时,
可能是病态的。若发现
可能是病态的.通常有四种处理原则:采用高精度的算术运算
如利用双倍字长进行计算,以便改善和减轻矩阵病态的影响,但计算时间将大大增加。
采用预处理方法
寻求非奇异矩阵P,Q,使求解
(设A为n维非奇异方阵)转化为求解 或其中,且改善A的条件数。于是,可先求解,再求解。当A为对称正定矩阵时,一般选取P,Q为对角阵或三角阵。对病态线性方程组
进行预处理,如取P,Q为对角阵,称为平衡方法,即当系数矩阵A的元素数量级相差很大时,可采用行均衡或列均衡方法,这时矩阵A的条件数可能得到改善。所谓行均衡,是在解之前,对A的每一行都乘以适当的数,使A所有的行按照某种范数大体上有相同的长度。设
非奇异,计算,令 于是,求解化为求解 或,这时有。采用特殊的数值解法
采用某些特殊的数值方法求解。
找病因改问题
寻找出现病态的原因,改变原问题的提法。
1、本网站为开放性注册平台,以上所有展示信息均由会员自行提供,内容的真实性、准确性和合法性均由发布会员负责,本网站对此不承担任何法律责任。
2、网站信息如涉嫌违反相关法律规定或侵权,请发邮件至599385753@qq.com删除。