对病态方程组的处理方法分析研究.docVIP

  • 11
  • 0
  • 约4.67千字
  • 约 10页
  • 2019-07-19 发布于江苏
  • 举报
对病态方程组的处理方法研究 蓝醒龙 广西民族大学数学与计算机科学学院03数本2班,530006) 摘要: 对病态线性方程组解法研究是数值计算方法的一个重要研究课题。本文分析了病态方程组的特点,介绍了几种有效的解法。 关键词:病态线性方程组;条件数;预处理;迭代 Studying The Algorithm For Solving Ill-conditioned System Of Equations Abstract:Studying the algorithm for solving ill-conditioned system of equations is an important issue. This paper analyses the equations characteristic, and introduces several effective algorithms. Key words:ill-conditioned system of equations。 condition number。 pretreatment。 iteration 1 问题的提出 一个线性方程组 ,若右端向量或系数矩阵的微小变化就会引起方程组的解发生很大的变化,则称为病态方程组。方程组的系数矩阵的条件数刻画了方程组的性态,若,则称为“病态”方程组;若相对较小,则称为“良态”方程组。良态方程组用GAUSS消去法和JACOBI等简单的迭代法就可以得到比较好的计算解,而对于病态方程组,一般的直接法和迭代法会有较大的误差,甚至严重失真。所以,在解方程组时,有必要先对方程组的性态进行研究,采用相应的算法,才能得到比较精确的计算解。利用方程组的条件数来判断就是一个很好的办法。 下面的一些直观的现象可作为判别病态矩阵的参考: 1)在主元消去法的过程中出现小主元,则有可能是病态矩阵,但病态矩阵未必一定有这种小主元; 2)若解方程组时出现很大的解,则有可能是病态矩阵,但病态矩阵也可能有一个小解; 3)从矩阵本身来看,若元素间数量级相差很大且无一定规律;或矩阵的某些行列)近似线性相关,即矩阵的行列式接近于0,这样的矩阵就有可能是病态的。 当然,这些现象只能帮助我们做初步的判断,并且很多病态矩阵也不一定会出现这些现象。所以,最可靠的判别方法是求出矩阵的条件数。 在文[1]中,引用了Forsythe和Moler的一种估计的简便方法:若残向量,表示用Gauss消去法求解的计算解,表示用Gauss消去法求解的计算解,则 其中,是计算时采用的有效数位。在文[1]中,作者还举例说明了此法的有效性。有关条件数及其估计,在文[5]中也有详细的讨论。本文讨论其它的处理方法。 2 对病态方程组的处理方法 2.1 方程组的预处理 设阶线性方程组 1.21) 解方程组1.21)的收敛速度通常与矩阵A的条件数有关。当矩阵A的条件数比较大时,收敛速度往往很慢,所得的解的误差也会相当的大,甚至是难以接受的,为此,在求解方程组前,先改善系数矩阵的条件数,即进行预处理。 将方程组1.21)化为易于求解的等价方程组 1.22) 其中,,仍然保持原来的特性,c为预处理矩阵,且容易从方程组中解出X。若的条件数小于的条件数,则用相应的算法解方程组1.22)的收敛速度将会比解方程组1.21)的快,这就是病态方程组进行预处理的目的。这里用到的预处理方法是不完全的Cholesky分解法,这个方法是1977年J.A.Meijerink 和A.Van der Vorst提出的。 将系数矩阵A分解成 其中,L是下三角阵,使尽可能接近A,且L保持跟A一样的稀疏性或具有其它形状的稀疏性。 完全分解是对系数矩阵A进行三角分解,不完全分解是对矩阵进行三角分解。因为有矩阵R可以变化,因此L的稀疏性结构可以预先适当控制,即L中哪些元素为0,可以预先规定,但也不能任意规定,还要考虑到接近A。在实际计算中,常常考虑R有较多的零元素。 比如,有矩阵 , 它是对称正定的。我们将A分解成 要求L和A有相同的稀疏性,即 而。我们比较 两端对应的元素。由 取,得。相似的可以得到,,,,,,。于是,我们可以计算得 在做出A的不完全的Cholesky分解 后。方程组 可化为 其中,,,。 不难验证,当R尽量的小,时,有,可估计,即改变了A的条件数。可见不完全的Cholesky分解法是一种比较有效的预处理法。 具体的M的选择有不同的方法。最简单的就是J迭代或块Jcobi迭代)中的分解,即 另一

文档评论(0)

1亿VIP精品文档

相关文档