当前位置:文档之家› 线性方程组的解法

线性方程组的解法

线性方程组的解法1 引言在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解。

在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组。

而如插值公式,拟合公式等的建立,微分方程差分格式的构造等,均可归结为求解线性方程组的问题.在工程技术的科学计算中,线性方程组的求解也是最基本的工作之一.因此,线性方程组的解法一直是科学和工程计算中研究最为普遍的问题,它在数值分析中占有极其重要的地位。

20世纪50年代至70年代,由于电子计算机的发展,人们开始考虑和研究在计算机上用迭代法求线性方程组Ax =b的近似解,用某种极限过程去逐渐逼近精确解,并发展了许多非常有效的迭代方法,迭代法具有需要计算机存储单元少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点。

例如Jacobi方法、Gauss—Seidel 方法、SOR 方法、SSOR方法,这几种迭代方法是最常用的一阶线性定常迭代法。

2 主要算法20世纪50年代至70年代,人们开始考虑和研究用迭代法求解线性方程组。

Ax = b (1)的近似解,发展了许多有效的方法,其中有Jacobi方法、Gauss—Seidel方法,SOR方法、SSOR方法,这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A的一个分裂:A =M-N ;M 为可逆矩阵,线性方程组(1)化为:(M-N)X =b;→M X = NX + b;→X= M -1NX+ M-1b得到迭代方法的一般公式:X(k+1)=HX(k)+d (2)其中:H =MN-1,d=M-1b,对任意初始向量X(0)一阶定常迭代法收敛的充分必要条件是: 迭代矩H的谱半径小于1,即ρ(H) < 1;又因为对于任何矩阵范数恒有ρ(H)≤‖H‖,故又可得到收敛的一个充分条件为:‖H‖< 1。

2.1 Jacobi迭代法若D为A的对角素构成的对角矩阵,且对角线元素全不为零。

系数矩阵A的一个分解:A= D -(L +U); 这里D 为A 的对角素构成的对 角矩阵, 为严格下三角阵,U 为严格上三角阵。

Jacobi 迭代的矩阵形式为 :X (k+1)=HJX (k )+dJ(3)(3) 式中: dJ= D-1b;HJ=I -D-1A,称HJ 为Jacobi 迭代矩阵.其计算公式为:迭代矩阵HJ 的谱半径ρ(H) < 1,则对于任意迭代初值X (0),Jacobi 迭代法收敛。

2.2 Gauss-Seidei 迭代法对于非奇异方程组,若D 为A 的对角素构成的对角矩阵,且对角线元素全不为零;系数矩阵A 的一个分解:A = (D -L)-U(5)Gauss-Seide 迭代矩阵形式为:X (k+1)=HGSX(k)+dGS上式中: HGS=(D -L)-1U ;dGS=(D -L)-1L称HGS 为G-S 迭代矩阵。

计算公式为:i=1,2,3,…nk=0,1,2,…(6)若A 为严格或不可约对角占优矩阵,或A 为对称正定阵,则对于任意初值X (0),Gauss-Seide 迭代法收敛。

2.3 SOR(successive over relaxation)迭代法对于非奇异方程组,若D 为A 的对角素构成的 对角矩阵,且对角线元素全不为零;系数矩阵A 的一个分解:(7)⎪⎭⎫⎝⎛+--⎪⎭⎫ ⎝⎛-=U D w w L D w A 11这里D 为A 的对角素构成的对角矩阵,为严格下三角阵,为严格上三角阵。

SOR 迭代法的矩阵形式为 X (k+1)=HSOR X(k)+dSOR式中 :w w wHSOR=(D-L)-1 [ (1-) D + U]w wd SOR= ( D-L )-1b。

计算公式为:i=1,2,3,...n k=0,1,2, (8)然后按相反的次序(i= n,n-1,…1)用向后的SOR方法逐点计算i= n,n-1,...1;k=0,1, (11)w若AX= b中A是正定的,且0﹤﹤2,则SSOR法收敛。

2.4 消元法消元法是初等数学中求解低阶多元线性方程组的方法.此时线性方组必须是适定方程组.一般是用于二元一次或三元一次方程组.当未知元增多时.计算效率低甚至无法求解.2.5 克拉默法则当系数行列式不为零时.适定方程组有惟一解.其解如(12)式所示:xi= Di /D i=1,2,…,n (12)其中D是系数行列式,Di是在系数行列式基础之上结合方程组右边常数形成的新行列式。

在此法则中。

行列式的计算显得非常重要。

用行列式的性质计算行列式最为有效。

对于二、三阶行列式可以利用对角线法则计算。

克拉默法则克服了消元法计算效率低甚至无法计算多元一次方程组的缺点.但是对于系数行列式等于零以及欠定或者超定方程组的情况,它是无能为力的。

事实上,当未知元数过多时(如未知元数≥5)。

克拉默法则的计算效率就很低。

2.6 逆阵乘积法对于适定方程组.可以把它表达成矩阵方程的形式:AX=b解矩阵可以利用逆阵乘积法求出:A-1 b = X矩阵运算的实质是把矩阵当作一个“量”来运算。

使普通数的运算有很大的简化。

但是该方法的前提是A可逆。

本质上仍然是系数行列式|A|≠0.对于阶数比较高的系数矩阵.直接求解逆阵也是比较困难的(利用初等变换可以降低求解难度)。

当|A|=0时,或者对于欠定或者超定方程组,逆阵乘积法仍然是无能为力的或不适合的。

2.6 初等变换法对于欠定或超定方程组的求解。

初等变换法是最直接、最简单的方法。

同时该方法也能用于适定方程组的求解。

因此,初等变换法是一种求解线性方程组的普适方法和最基本方法。

秩是矩阵的本征参数.利用系数矩阵的秩和增广矩阵秩的关系,可以判断线性方程组解的情况:无解,惟一解和无穷多解。

对增广矩阵进行初等变换.可以得到增广矩阵的等价矩阵.从而得到了原来方程组的等价方程组。

由于等价矩阵已变换成阶梯形矩阵或最简形矩阵,所以等价方程组变得非常简单。

可以方便地求出解。

初等变换也是求逆阵的一种直观方法.所以可以和阵乘积法配合运用。

2.7 利用向量空间概念求解线性方程组如果把齐次线性方程组的解集看作是一个向量空间。

由于一个向量组(向量空间)与它的一个最大无关组等价。

则只需求出解集的一基础解系即可确定齐次线性方程组的解。

求解的方法仍然采用初等变换法.解的形式可以用通解来表达.更能说明解的本质。

尤其是无穷多解。

基础解系中线性无关的向量形成解向量空间的一个最大无关组。

在非齐次方程组求解中.只要求出对应齐次方程组的通解。

然后加上非齐次方程组的一个特解即可.而且这种通解和特解可以在一次初等变换中求出。

2.7 Krylov子空间方法Krylov子空间方法是解决大型线性方程组的一类十分有效的方法,其主要代表是对称正定线性方程组的共轭梯度法和非对称线性方程组的GMRES方法。

20世纪50年代初期由Hestenes和Stiefel首先提出的共轭梯度法(或简称CG法)。

近20年来有关的研究取得了前所未有的发展,目前有关的方法和理论已经相当成熟,并且成为求解大型稀疏线性方程组十分有效的一类方法。

w w通过对经典迭代法的总结,发现SOR迭代法在松弛因子取最优松弛因子opt的情况w下,迭代收敛很快。

但是,计算opt还需要求得对应的Jacobi迭代矩阵的谱半径,这常常是比较困难的。

考虑线性方程组:Ax= b (13)的求解问题,其中A是给定的n阶对称正定阵,b是给定的n维向量,x是待求的n维向量。

为此定义二次泛函数Ψ( x) = xTA x -2bTx (14)则可以证明求方程组(13)的解等价于求二次泛函(14)的极小点。

由此,给定了初始向量x(0),按某一方向去求式(14)的极小值点x(1),就得到下一个迭代值x(1),再由x(1)出发,求x(2)等等。

这样来逼近精确解x*.若取求最小值的方向为Ψ在x(k-1)(k =1,2,⋯)处的负梯度方向,就是所谓的最速降法。

然而理论和实际计算表明这个方法的收敛速度较慢,共轭梯度法则是在x(k-1)处的梯度方向r(k-1)和这一步的修正方向p(k-1)所构成的二维平面内,寻找使Ψ减少最快的方向作为下一步的修正方向,即求极小值的方向p(k)(其第一步仍取负梯度方向).计算公式为p(1)=r(0)=b- x(0)再逐次计算qk=( r(k-1),r(k-1))/(A p(k), p(k)),((x,y)表示向量xy的内积x(k)= x(k-1)+ qk p(k)r(k)= r(k-1)- qk p(k)ek=(r(k),r(k))/(r(k-1),r(k-1))p(k+1)= r(k)+ ek p(k)(k=1,2,…)可以证明当i≠j时,(p(i),A p(j))=0,(ri,rj)=0从而p(1),p(2)….形成一共轭向量组;r(0),r(1)…形成一正交向量组。

后者说明若没有舍入误差的,至多n次迭代就可以得到线性方程组(14)的精确解。

然而,在实际计算中一般都有舍入误差,所以r(0),r(1)…并不是真正相交,而x(0),x(1)…等也只是逐步逼近式(14)的真解,故我们将共轭梯度法作为迭代法来使用。

3 数值实验下面通过一个数值实例来比较Jacobi方法、Gauss-Seidel方法、SOR方法的收敛速度。

数值实验:我们取一个系数矩阵为64阶的线性方程组:A X= b。

其中:精确解:X=(1 1 1 1…1)T1×64; X(0) (0 0 0 0…1)T1×64; 精度为:0.0001.执行C语言程序interrator-method. C得到result.txt文件。

得到三种迭代法的对比表1.表1 三种方法的迭代性能Method IT CPU Time/ms‖x(k)-x∞‖∞InfoJacobi18 3.000008.19628×10-5Gauss-Seidel10 2.00000 1.68O24×10-5几乎比Jacobi收敛速度快一倍SOR with=1.0w 10 2.000001.68024×10-5SORwith=optw w 6 1.000005.47552×10-6SOR with=1.5w 17 3.000002.09836×10-5退化成Gauss_ Seidel迭代使SOR迭代达到最快的取值于SORw迭代的收敛速度影响很大4 优点克拉默法则、逆阵乘积法只能求解系数行列式不为零的适定方程组;初等变换法可以直观地解决所有类型的超定、欠定、适定方程组,是一种普适的方法;利用向量空间概念求解线性方程组,更能从本质上把握线性方程组的解的性质。

应用MATL B语言编程可以轻松实现这些求解方法。

实用共轭梯度法主要有以下优点:w p1)算法中,系数矩阵A的作用仅仅是用来由已知向量P产生向量=A,这就充分利用p w p了A的稀疏性。

相关主题