雅可比迭代实验报告_第1页
雅可比迭代实验报告_第2页
雅可比迭代实验报告_第3页
雅可比迭代实验报告_第4页
雅可比迭代实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、雅可比迭代法求解线性方程组的实验报告一、实验题目分别利用雅可比迭代法和高斯- 塞德尔迭代法求解以下线性方程组:10x1 x2 2x37.2x1 10x2 2x3 8.3x1 x2 5x34.2使得误差不超过。二、实验引言1. 实验目的掌握用迭代法求解线性方程组的基本思想和步骤,熟悉计算机fortran语言;了解雅可比迭代法在求解方程组过程中的优缺点。2. 实验意义雅克比迭代法就是众多迭代法中比较早且较简单的一种,求解方便实用。三、算法设计1. 雅可比迭代法原理:设有线性方程组Ax=b 满足aii0 , 将方程组变形为 : x=Bx+f, 则雅可比(Jacobi) 迭代法是指X (k 1) Bx

2、k f ,即 由初始解逐步迭代即可得到方程组的 解。算法步骤如下:步骤1.给定初始值xi(0), x20), x?,精度e,最大容许迭代次数 M令k=1步骤2.对i=1,2,n依次计算x1(bjei| xi(1)naijxj)/aii(aiij1xi(0) |0,i 1,2, , n)(1)(0)步骤3.求出e maxei,若e ,则输出结果x?i 1,2, ,n),停止计算。 1in否则执行步骤 4.步骤4.若k M,k 1 k,转步骤2继续迭代。若k M,表明迭代失败,停止计算。2. 算法流程图四、程序设计program jacobi implicit none integer:i,jin

3、teger:ksave kreal,parameter:e=integer,parameter:n=3 real:x(n),y(n),b(n) data b/,real:D real:a(n,n) open (unit=10,file='')data a/10,-1,-1,-1,10,-1,-2,-2,5/ write(10,"(1x,/)")a forall(i=1:n)write(10,*)"*矩阵A 的形式为*"x(i)=0end forallk=0100 D=0do i=1,ny(i)=b(i)do j=1,nif(i/=j) y

4、(i)=y(i)-a(i,j)*x(j)end doy(i)=y(i)/a(i,i)end dodo j=1,nD=abs(x(j)-y(j)end doforall(i=1:n) x(i)=y(i) end forallif(D>=e) thenk=k+1write(10,*)" 迭代次数为: ",kgoto 100elsegoto 200end if200 write(10,*)""*”write(10,*)" 用 jacobi 方法解得的结果Xt 为:write(10,"(1x,/)")x(:)stopend p

5、rogram五、结果及讨论1. 实验结果矩阵 A 的形式为迭代次数为: 迭代次数为: 迭代次数为: 迭代次数为: 迭代次数为: 迭代次数为: 迭代次数为:*用 jacobi 方法解得的结果Xt 为:2. 讨论分析( 1)误差从上述输出结果中可以看出,当迭代次数k 增大时,迭代值x1,y 1,z 1会越来越逼近方程组的精确解 x=,y=,z= 。( 2)收敛性在本题目中 , 用雅可比迭代法和高斯- 塞德尔迭代法分别求解该线性方程组, 得到的近似根是收敛的六、算法评价优点:迭代法算法简单,编制程序比较容易。缺点:迭代法要求方程组的系数矩阵有某种特殊性质(譬如是所谓对角占优阵)以保证过程的收敛性。高

6、斯塞德尔迭代法比雅可比迭代法收敛快( 达到同样的精度所需迭代次数少), 但这个结论, 在一定条件下才是对的 , 甚至有这样的方程组 , 雅可比方法收敛,而高斯塞德尔迭代法却是发散的。在雅可比迭代法求解线性方程组时, 只要误差截断设计的合理, 原则上可以得到很正确的解。 而通常我们选取设计误差限或设计最大迭代次数的方法来控制。 由于它的准确性, 故在实际应用中比较常见, 对于解一般线性方程组非常有效准确。 通过该算法以及编程对求解的过程,我们不难发现,雅克比迭代法的优点明显,计算公式简单,每迭代一次只需计算一次矩阵和向量的乘法,且计算过程中原始矩阵A 始终不变,比较容易并行计算。 然而这种迭代方

7、式收敛速度较慢, 而且占据的存储空间较大,所以工程中一般不直接用雅克比迭代法,而用其改进方法。附:高斯赛德尔程序 program G-S implicit none integer:i,j integer:k save k real,parameter:e= integer,parameter:n=3 real:x(n),y(n),b(n)data b/,real:Dreal:a(n,n)open (unit=10,file='') data a/10,-1,-1,-1,10,-1,-2,-2,5/矩阵A 的形式为*"write(10,*)"* write(

8、10,"(1x,/)")a forall(i=1:n)x(i)=0end forallk=0100 D=0do i=1,ny(i)=b(i)do j=1,nif(i<j) y(i)=y(i)-a(i,j)*x(j)if(i>j) y(i)=y(i)-a(i,j)*y(j)end doy(i)=y(i)/a(i,i)end do do j=1,n D=abs(x(j)-y(j) end doforall(i=1:n)x(i)=y(i) end forallif(D>=e) thenk=k+1write(10,*)" 迭代次数为: ",kgoto 100elsegoto 200end if200 write(10,*)"write(10,*)""*”用 Gauss-seidel 方法解得

温馨提示

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

评论

0/150

提交评论