病态方程组
由实际问题得到的方程组的系数矩阵或者常数向量的元素,本身会存在一定的误差;这些初始数据的误差在计算过程中就会向前传播,从而影响到方程组的解。病态方程组是指因系数的很小改变却导致解改变很大的方程组,称相应的系数矩阵A为病态矩阵。病态方程组对任何算法都将产生数值不稳定性。对病态方程组有四种处理原则:采用高精度的算术运算;采用预处理方法;采用特殊的数值解法或寻找出现病态的原因,改变原问题的提法。
基本信息
- 中文名
病态方程组
- 外文名
Ill conditioned equations
- 相关方程
良态方程组
- 对应矩阵
病态矩阵
- 特点
对任何算法都将产生数值不稳定性
- 应用学科
数值计算
预备知识
扰动
设方程组为Ax=b,系数矩阵A和常数向量b的扰动分别记为:
和
,则实际求解的方程组为
。1
条件数
求解线性方程组Ax=b时,设A是n阶非奇异矩阵,‖·‖为矩阵的任一种从属范数,则
,称为矩阵A的条件数,其中
是A的逆矩阵。1
定义
病态方程组是指因系数的很小改变却导致解改变很大的方程组。病态的另外一个解释是很大范围的解都能近似满足方程组。因为舍入误差会使系数有一些小的改变,那么对于病态方程组,这些人为的改变会导致解有很大的误差。2
表述一
设方程组为Ax=b,系数矩阵A和常数向量b的扰动分别记为:
和
,如果
和
很小,而
很大,则称方程组Ax=b为病态(ill-conditioned)方程组,称系数矩阵A为关于求解方程组或求逆的病态矩阵;反之,如果
和
微小时,
也很微小,则称方程组Ax=b为良态(well-conditioned)方程组,称系数矩阵A为关于求解方程组或求逆的良态矩阵。病态方程组对任何算法都将产生数值不稳定性(如用LU分解法求解线性方程组时,更换主元有可能使解的精确度大大下降)。1
表述二
求解线性方程组Ax=b时,设A是n阶非奇异矩阵,当条件数Cond(A)比较大时,A和b的小扰动会引起解的较大误差,所以条件数Cond(A)刻画了方程组Ax=b的性态。如果条件数比较大,就说方程组是“病态”的;如果条件数比较小,就说方程组是“良态”的;当然,病态和良态是相对的。1
典例
设有方程组:
易得其精确解为
。
若常数项有一个扰动,得到方程组:
则其解为
。
可见A或b中元素的0.0001的微小变化会导致方程组解的巨大差异,这样的方程组就是“病态”方程组,可以利用范数来描述向量和矩阵的扰动误差。3