1. 研究目的与意义
在自然科学和工程技术中,很多问题的解决最后都归结为解线性代数方程组。例如电力系统的优化问题,解非线性方程组问题,用最小二乘法求实验数据的曲线拟合问题等都导致求解线性代数方程组。关于线性方程组的数值解法一般分为直接法和迭代法。而迭代法是解大型稀疏矩阵方程组的重要方法。随着科学技术的不断深入发展,求解问题的复杂性不断提高,大型稀疏方程组的高效求解在科学计算中具有普遍意义。因此,掌握解大型稀疏方程组的相关理论和相应的数值方法是很有必要的。
2. 国内外研究现状分析
由于在在大部分科学计算领域中都会遇到大型稀疏线性方程组的数值求解问题,因此,如何快速有效地求解大型稀疏线性方程组一直是数值代数研究中最主要的研究课题之一。早在十九世纪初,就有许多学者对用迭代法来求解线性方程组很感兴趣。这类型的迭代法最基本的想法就是将给定的线性方程组Ax=b中的系数矩阵A分解成两个矩阵的和,其中一个矩阵将会使得给定的线性方程组容易求得其真解。在1950年MagnusHestenes,EduardStiefel,和CorneliusLanczos发明了Krylov子空间迭代法。Krylov子空间迭代法是用来求解形如Ax=b的方程组,A是一个n*n的矩阵,当n充分大时,直接计算变得非常困难,而Krylov方法则巧妙地将其变为Kxi 1=Kxi b-Axi的迭代形式来求解。在1952年左右,Hestenes与Stiefel提出了一种迭代法--共轭梯度法,简称CG(ConjugateGradient),用于解正定系数矩阵的线性方程组。对于这种大型稀疏线性方程组,当前世界上使用较多的迭代法是Krylov子空间方法,如:CG、GMRES等。
3. 研究的基本内容与计划
首先,对线性方程组分别采用不同的直接法来进行求解,并编写了MATLAB程序。具体是列主元Gauss消去法,LU分解法,进而给出针对对称正定矩阵的LDLT平方根算法。然后,采用不同的迭代法来进行求解,并编写MATLAB程序。具体是雅克(Jacobi)比迭代法,高斯-赛德尔(Gauss-Seidel)迭代法,逐次超本松弛(SOR)迭代法,在分析SOR法的基础上讨论共轭梯度(CG)法。
4. 研究创新点
对解线性方程组的几种常用的直接法和迭代法有比较详尽的推导过程,并分别进行了MATLAB程序实现,进行了实例求解。在分析SOR法后讨论共轭梯度(CG)法,并了解Krylov子空间。
