好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

雅可比迭代实验报告.docx

13页
  • 卖家[上传人]:人***
  • 文档编号:461804410
  • 上传时间:2023-10-27
  • 文档格式:DOCX
  • 文档大小:58.84KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 雅可比迭代法求解线性方程蛆的实验报告一,实验题目分别利用雅可比迭代法和高斯-塞德尔迭代法求解以下线性方程组:10x 一 x 一 2x = 7.2〈一 x +10x - 2x = 8.3一 x — x + 5 x = 4.2v 1 2 3使得误差不超过0.00001二实验引言1. 实验目的① 掌握用迭代法求解线性方程组的基本思想和步骤,熟悉计算机fortran语言;② 了解雅可比迭代法在求解方程组过程中的优缺点2. 实验意义雅克比迭代法就是众多迭代法中比较早且较简单的一种,求解方便实用三、算法设计1. 雅可比迭代法原理:设有线性方程组Ax=b满足%丰0,将方程组变形为:x=Bx+f,则雅可比 (Jacobi)迭代法是指X(5 = Bxk + /,即由初始解逐步迭代即可得到方程组的 解算法步骤如下:步骤1.给定初始值x(0),x2x(0)/精度e,最大容许迭代次数M,令k=1步骤2.对i=1,2,...,n依次计算x = (b -U a x )/a (a 丰 0,i = 1,2,..., n)1 j ij j ii iij=1j &e =1 x⑴ 一 x(o)|x(l) — x (O)步骤3.求出e = max{e },若e

      1 M,表明迭代失败,停止计算2. 算法流程图program jacobiimplicit noneinteger::i,jinteger::ksave kreal,parameter::e=0.001integer,parameter::n=3real::x(n),y(n),b(n)data b/7.2,8.3,4.2/ real::D real::a(n,n) open (unit=10,file='1.txt')data a/10,-1,-1,-1,10,-1,-2,-2,5/write(10,*)'k'k'k'k'k'k'k'k'k*矩阵A的形式为*'k'k'k'k'k'k'k'k'kwrite(10,"(1x,3f6.2,/)")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)end doy(i)=y(i)/a(i,i)end do2。

      don-LnDnabs(xe—ys end do fora=Tla x(Tya) end fora= if(Dvne)ihen knk+1 wme(10、*)=演芫旨薄苛-=、kgoio 100 e-segoio 200 end if=**************************************** =wme(10、*)_sjacobiEfffKas®®>

      2) 收敛性在本题目中,用雅可比迭代法和高斯-塞德尔迭代法分别求解该线性方程组,得 到的近似根是收敛的六、算法评价优点:迭代法算法简单,编制程序比较容易缺点:迭代法要求方程组的系数矩阵有某种特殊性质(譬如是所谓对角占优阵) 以保证过程的收敛性高斯一塞德尔迭代法比雅可比迭代法收敛快(达到同样的 精度所需迭代次数少),但这个结论,在一定条件下才是对的,甚至有这样的方程组, 雅可比方法收敛,而高斯一塞德尔迭代法却是发散的在雅可比迭代法求解线性 方程组时,只要误差截断设计的合理,原则上可以得到很正确的解而通常我们 选取设计误差限或设计最大迭代次数的方法来控制由于它的准确性,故在实际 应用中比较常见,对于解一般线性方程组非常有效准确通过该算法以及编程对 求解的过程,我们不难发现,雅克比迭代法的优点明显,计算公式简单,每迭代 一次只需计算一次矩阵和向量的乘法,且计算过程中原始矩阵A始终不变,比 较容易并行计算然而这种迭代方式收敛速度较慢,而且占据的存储空间较大, 所以工程中一般不直接用雅克比迭代法,而用其改进方法附:高斯一赛德尔程序program G-S implicit noneinteger::i,jinteger::ksave k real,parameter::e=0.001integer,parameter::n=3real::x(n),y(n),b(n)data b/7.2,8.3,4.2/real::D real::a(n,n) open (unit=10,file='1.txt')data a/10,-1,-1,-1,10,-1,-2,-2,5/write(10,*)'k'k'k'k'k'k'k'k'k*矩阵A的形式为*'k'k'k'k'k'k'k'k'kwrite(10,"(1x,3f6.2,/)")a forall(i = 1:n)x(i)=0end forallk=0100 D=0do i = 1,ny(i) = b(i)do j = 1,nif(ij) y(i)=y(i)-a(i,j)*y(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,*)"迭代次数为:侦goto 100else2。

      goio 20 end if=**************************************** =wmeQOW-sGauss—seide-EfffKas^^XMs-=wr#e(llx、3f6.2s=)xc) siopend programlobo —lbo —lbo —100 1000 —100 —200—2.0 500 鉴蓬苛- 一 鉴蓬苛- 2 鉴蓬苛- 3 鉴蓬苛- 4 ****************************************,习BBS洋,用Gauss-seidel方法解得的结果X[t]为:1.10 1.20 1.30THANKS !!!致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.