数值分析:3-1-3-2线性方程组迭代解法_第1页
数值分析:3-1-3-2线性方程组迭代解法_第2页
数值分析:3-1-3-2线性方程组迭代解法_第3页
数值分析:3-1-3-2线性方程组迭代解法_第4页
数值分析:3-1-3-2线性方程组迭代解法_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第三章 线性方程组迭代解法线性方程组迭代解法l 3.1 3.1 概概 论论l 3.2(I) 3.2(I) Jacobi 迭代法迭代法l 3.2(II) 3.2(II) Gauss-Seidel 迭代法迭代法l 3.3 3.3 迭代法的收敛性迭代法的收敛性l 3.4 SOR法法l 本章学习要点本章学习要点l引子引子l迭代法的基本思想迭代法的基本思想l迭代法的主要步骤迭代法的主要步骤 直接法得到的解是理论上准确的,但是我们可以看得出,它们的计算计算量都是n3数量级,存储量存储量为n2量级,这在n比较小的时候还比较合适(n400),但是对于现在的很多实际问题,往往要我们求解很大的n的矩阵,而且

2、这些矩阵(系数矩阵)往往是含有大量的0元素。对于这类的矩阵,再用直接法时就会耗费大量的时间和存储单元。另一方面,实际计算结果精度有时计算结果精度有时无法保证无法保证. 主要原因主要原因是在多次消去、回代过程中四则运算的误差积累与传播无法控制. 因此我们有必要引入一类新的方法:迭代法迭代法。 返回节返回节 迭代法是解线性方程组的一种重要的实用方法,迭代法是解线性方程组的一种重要的实用方法,特别适用于求解在实际中大量出现的,系数矩阵为特别适用于求解在实际中大量出现的,系数矩阵为稀疏阵的大型线性方程组。稀疏阵的大型线性方程组。 迭代法的基本思想是去构成一个向量序列迭代法的基本思想是去构成一个向量序列

3、X(k),使其收敛至某个极限向量使其收敛至某个极限向量X* ,并且,并且X*就是要求解就是要求解的方程组:的方程组:AX = b的准确解。的准确解。返回节返回节解线性方程组迭代法的主要步骤是解线性方程组迭代法的主要步骤是: :1.1.把所给的线性方程组把所给的线性方程组AX=b 化成如下形式的同解化成如下形式的同解方程组方程组 X=BX+f (3-1) 2. 2. 给出初始向量给出初始向量 , ,按迭按迭代公式代公式 X(k+1)=BX(k)+f (k=0,1,2,) (3-2)进行计算进行计算。 nTnRxxxX 002)0(10, 如果按上述迭代公式所得到的向量序列如果按上述迭代公式所得到

4、的向量序列 X (k) 收敛于某个向量收敛于某个向量X * , ,则则X* 就是方程组就是方程组 AX =b 的的解,并称此迭代法解,并称此迭代法收敛收敛。否则,就叫不收敛或发。否则,就叫不收敛或发散。散。 式式(3-1)(3-1)、(3-2)(3-2)中的矩阵中的矩阵B ,称为称为迭代矩阵迭代矩阵。 本章重点介绍三个迭代法,即:本章重点介绍三个迭代法,即: 1)Jacobi迭代法迭代法, 2)Gauss-Seidel 迭代法迭代法, 3)超松弛迭代法(超松弛迭代法(SOR法)法) 及其收敛性。及其收敛性。 返回章返回章3.2(I) Jacobi迭代法迭代法l数学问题的描述lJacobi迭代法

5、的主要步骤 设有线性方程组设有线性方程组 AX =b 即即 nnnnnnnnnnbxaxaxabxaxaxabxaxaxa22112222212111212111(3- -3) 其中其中 A=(aij)nn 非奇异(非奇异(A 0),且),且a ii0 (i=1,2,n), 由式由式(3-3)得)得 (3- -4) ), 2 , 1(nixabxajijijiiii 返回引用返回引用若记若记 000000211221212211nnnnnnaaaUaaaLaaaD则有则有 A=D-L-U成立成立,而,而式(式(3- -4)的矩阵形式为的矩阵形式为 DX =(L+U)X+b (3- -5) 等式

6、两边乘以等式两边乘以D-1,得,得 X= D-1(L+U)X+ D-1b (3- -6) 由此得到迭代公式由此得到迭代公式 X(k+1)= D-1(L+U)X(k)+ D-1b (3-7)即即 (3-8)), 2 , 1 , 0(), 2 , 1(/ )()()1( kniaxabxiikjijijiki这种迭代法,称为这种迭代法,称为Jacobi迭代法。迭代法。 返回节返回节迭代矩阵 ;每迭代一次主要是计算一次矩阵乘向量 ;计算过程中,初始数据A始终不变;计算过程中涉及到的中间变量 及 ,需要两组工作单元x(n),y(n)来存储.1()JBDLU( )kJB X()KX(1)kXJacobi

7、 迭代法的计算步骤迭代法的计算步骤(5(5步步) )为:为: k=1;输入最大迭代次数;输入最大迭代次数N,误差,误差以及迭代以及迭代初值初值 X=(x1,x2, ,xn) ; ), 2 , 1(/ )(niaxabyiijijijii 如果如果|Y-X|N,算法失败。,算法失败。 置置X=Y,即,即xi=yi (i=1,2, ,n),转,转; 例例3.13.1 158311102253116 21043243214321321xxxxxxxxxxxxxx求解求解Jacobi迭代公式为:迭代公式为: 8/ )315(10/ )211(11/ )325(10/ )26()(3)(2)1(4)(4

8、)(2)(1)1(3)(4)(3)(1)1(2)(3)(2)1(1kkkkkkkkkkkkkkxxxxxxxxxxxxxx解解:选取选取X(0)=(0,0,0,0)T,迭代迭代10次,次,结果见结果见表表3-1 返回引用返回引用kx1(k) x2(k) x3(k) x4(k) 00.0000 0.0000 0.0000 0.0000 10.6000 2.2727 -1.1000 1.8750 21.0473 1.7157 -0.8052 0.8852 30.9326 2.0533 -1.0493 1.1309 41.0152 1.9537 -0.9681 0.9739 50.9890 2.01

9、14 -1.0103 1.0214 61.0032 1.9922 -0.9945 0.9944 70.9981 2.0023 -1.0020 1.0036 81.0006 1.9987 -0.9990 0.9989 90.9997 2.0004 -1.0004 1.0006 101.0001 1.9998 -0.9998 0.9998例例3.13.1迭代结果迭代结果表表3-13-1返回引用返回引用对于Jacobi迭代法,它的每一步设定计算顺序为在计算迭代值 时, 利用了它前面已计算的值 而此时 也已计算, 但是Jacobi迭代法并没有充分及时地利用这些信息, 为此我们得到改进的格式 , 称为高

10、斯高斯塞德尔塞德尔(GaussSeidel)迭代迭代公式公式。 12nxxx1kix111121,kkkixxxJacobi迭代法的改进迭代法的改进( )kjx(1,2, )jn返回章返回章3.2(II) Gauss-Seidel迭代法迭代法l算法分析与描述算法分析与描述l实例求解算法分析与描述算法分析与描述), 2 , 1(/ )(1)(11)() 1(niaxaxabxiinijkjijijkjijiki (3-8)(3-8)可写成形如可写成形如 原原Jacobi迭代公式迭代公式(3- -8), 2 , 1 , 0)(, 2 , 1(/ )()()1( kniaxabxiikjijijik

11、i 在在Jacobi 迭代中,是用迭代中,是用X(k)的全部分量来计算的全部分量来计算X(k+1)的全部分量的。的全部分量的。 我们应该注意到,在计算新分量我们应该注意到,在计算新分量xi(k+1)时,分量时,分量x1(k+1), x2(k+1), , xi-1(k+1)都已经算出。都已经算出。返回引用返回引用 如果如果 Jacobi 法收敛,则可期望法收敛,则可期望X( (k+1) )比比X( (k) )更更好,在好,在式式( (3- -8) )中右边第中右边第1个求和号个求和号 中,用中,用X( (k+1) )的分量代替的分量代替X( (k) )的分量,似乎更合理些。的分量,似乎更合理些。

12、 这对许多问题来说,不仅会这对许多问题来说,不仅会加快收敛速度加快收敛速度,更重要的是,在编程序时,更重要的是,在编程序时,不必不必另设一套单元来另设一套单元来记存上一次记存上一次的的近似解近似解。这就是。这就是逐个代换算法逐个代换算法,又,又称称Gauss-Seidel迭代法迭代法。 因此,我们就得到新的迭代公式:因此,我们就得到新的迭代公式:), 2 , 1(/ )(1)(11) 1() 1(niaxaxabxiinijkjijijkjijiki (3-9)-9) 这就是这就是Gauss-Seidel迭代迭代公式公式 X( (k+1) )=BG X( (k) ) + fG (3- -10)

13、 其中其中 BG=(D-L)-1U,fG=(D-L)-1b,称称BG为为G-S迭代矩阵。迭代矩阵。 由于由于Gauss-Seidel迭代法逐次用计算出来的新值迭代法逐次用计算出来的新值代替旧值,所以在收敛的条件下,它要比代替旧值,所以在收敛的条件下,它要比Jacobi迭迭代法收敛速度快。代法收敛速度快。 返回节返回节Gauss-Seidel迭代公式的其矩阵形式为:迭代公式的其矩阵形式为:用用Gauss-Seidel迭代法求解迭代法求解例例3. .1 Gauss-Seidel迭代公式为迭代公式为 8/ )315(10/ )211(11/ )325(10/ )26()1(3)1(2)1(4)(4)

14、1(2)1(1)1(3)(4)(3)1(1)1(2)(3)(2)1(1kkkkkkkkkkkkkkxxxxxxxxxxxxxx仍取仍取x(0)=(0,0,0,0)T,迭代结果见,迭代结果见表表32 例例3.23.2解解| x(5)-x(4)|=8.010-4| x(5)-x|=10-4 从例从例3. .1和例和例3. .2 比较可见,比较可见,Gauss-Seidel迭代迭代5次的结次的结果果比比Jacobi 迭代迭代10次的结果还要好。次的结果还要好。 表表3. .2 例例3. .2 Gauss-Seidel迭代结果迭代结果 k x 1(k) x 2(k) x 3(k) x 4(k) 0 0.0000 0.0000 0.0000 0.0000 1 0.6000 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论