本文在上述文献的基础上,根据病态方程组的特性,提出更有效的预处理迭代修改法,通过降低系数矩阵的条件数,提高方程组的收敛速度,完善计算中误差积累的问题,提高解的精确性。 与传统迭代法相比,编程容易,并且所增加的计算量不大,还能够保持原矩阵的稀疏性,对解病态方程组而言是一个有效的方法。
1.预备知识
病态方程组是指如果一个线性方程组的右端向量或是它的系数矩阵发生微小变化引起方程组的解发生很大变化的方程。因为方程组的性态可以由它的系数矩阵的条件数表示, 的条件数表示为
其中表示矩阵的范数。
所以它的条件数时,则称为“病态”方程组;同理条件数时,则称为“良态”方程组。因此用高斯消去法和直接法等简单的迭代法解良态方程组可以得到比较准确的计算解,但对于病态方程组来说用一般的直接法和迭代法解会有较大的误差,甚至失真。所以我们得到一个方程组时,应该要对方程组的性态进行研究,再运用合适的方法进行求解才能能到精确的解。利用系数矩阵的条件数判断方程组的性态是一个很好的办法。文献综述
Forsythe和Moler提出一种估计的简便方法在文中有所引用:若用向量表示,则用Gauss消去法求解的计算解来表示,用的计算解俩表示,则
其中,是计算时采用的有效数位。本文讨论其它的处理方法。
2.病态方程组的解法探究
2。1 方程组的预处理
设阶线性方程组 (1。2。1)
因为矩阵的条件数的会影响方程组(1。21)的收敛速度,且当矩阵的条件数越大时,方程组的收敛速度会越慢,同时导致其解误差变大,甚至失真,所以我们在求解方程组时要对方程组进行预处理,也就是减少系数矩阵的条件数。
我们可以先把方程组(1。21)化为等价方程组
设,其中跟拥有相同的性质,预处理矩阵为,这样在方程组中易解出。但是如果的条件数比的条件数大,则用相同的算法去解方程组(1。21)的收敛速度会比解方程组(1。22)的慢,误差变大,这就需要我们对方程组进行预处理。我们用Cholesky分解法对方程组进行预处理。来:自[优E尔L论W文W网www.youerw.com +QQ752018766-
将系数矩阵分解成
其中,是下三角矩阵,是上三角矩阵,使尽可能接近,尽可能接近与0,且保持跟一样的稀疏性。
将矩阵三角分解成是不完全分解,将系数矩阵三角分解成是完全分解。因为矩阵可以任意选取,所以我们预先对的结构进行适当控制,也就是说可以预先规定中的哪些元素为0,但是在规定时要考虑到接近,不可以随意规定,在实际运算过程中我们经常要考虑有比较多的零元素。
比如,有矩阵
病态方程组的解法探究(2):http://www.youerw.com/shuxue/lunwen_97670.html