(推荐下载)Jacobi迭代法与Gauss-Seidel迭代法算法比较_第1页
(推荐下载)Jacobi迭代法与Gauss-Seidel迭代法算法比较_第2页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、(完整word版)Jacobi迭代法与Gauss-Seidel迭代法算法比较编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心, 本文档内容是由我和我的同事精心编辑整理后发布的, 发布之前我们 对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(完整word版)Jacobi迭 代法与Gauss-Seidel迭代法算法比较)的内容能够给您的工作和学习带来便利。同时也真诚的 希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以 下为(完整word版)Jacobi迭代法与Gauss-Seidel迭代法

2、算法比较的全部内容。Jacobi 迭代法与 GaussSeidel 迭代法算法比较目录1引言.11。1 Jacob i迭代法.11 o 2 Gauss-Seidel迭代法.21.3逐次超松弛(SOR)迭代法.32算法分析.33结论.54附录程序.5参考文献.8第1页共7页Jacob i迭代法与Gauss-Se i de I迭代法比较1引言解线性方程组的方法分为直接法和迭代法,直接法是在没有舍入误差的假设下,能在预定 的运算次数内求得精确解,而迭代法是构造一定的递推格式,产生逼近精确值的序列。这两 种方法各有优缺点,直接法普遍适用,但要求计算机有较大的存储量,迭代法要求的存储量 较小,但必须在收

3、敛性得以保证的情况下才能使用。对于高阶方程组,如一些偏微分方程数值 求解中岀现的方程组,采用直接法计算代价比较高,迭代法则简单又实用,所以比较受工程人 员青睐。迭代法求解方程组就是构造一个无限的向量序列,使它的极限是方程组的解向量即使计算 机过程是精确的,迭代法也不能通过有限次算术运算求得方程组的精确解,而只能逐步逼近它。 因此迭代法存在收敛性与精度控制的问题。迭代法是常用于求解大型稀疏线性方程组(系数矩阵阶数较高且o元素较多),特别是某 些偏微分方程离散化后得到的大型稀疏方程组的重要方法。设n元线性微分方程组A Z(1)的系数矩阵A非奇异,右端向量方工0,因而方程组有唯一的非零解向量。而对于

4、这种线性方 程组的近似解,前辈们发展研究了许多种有效的方法,有Jacobi迭代法、Gauss-Sei de I迭代 法,逐次超松弛迭代法(S0R法),这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A分解成两个矩阵N和P的差,即A = N-P.其中N为可逆矩阵,线性方程组(1)化为:(.N_P)x = bNx = Px + bx = NiPx + Nih可得到迭代方法的一般公式:严=G严+(2)其中:G = NP,df对任取一向量作为方程组的初始近似解,按递推公式产生一个 向量序列x,X,。.,当*足够大时,此序列就可以作为线性方程组的近似 解。一阶定常迭代法收敛的充分必要条件是:迭代矩阵G

5、的谱半径小于1,即(G)vl;又 因为对于任何矩阵范数恒有故又可得到收敛的一个充分条件为:|G| 称GJ为Jacobi迭代矩阵其计算公式为:如果迭代矩阵的谱半径Q(G)vl,则对于任意迭代初值x*:Jacobi迭代法收敛;如 果|Gj| +L)1Ux(k)+(D + LYlb其中无任取,则Gauss-Seidel迭代法的迭代公式为:(6)上式中:(D +厶尸方是其右端常数项;GG= -(D + LFU为GaussSeidel迭代法的迭代矩阵,其计算公式为:(4)第3页共7页若GS法收敛的充分必要条件是Q(GG)V1;如果II&II 0称为松弛因子在迭代法一般形式中,取N = L D +

6、 L P =-(1 -丄)D + U)cocof得到迭代公式+如)=_(丄D +厶)“(_ 丄)D + D)x+(丄D+厶)-%_cococo女=U丄(9)其中戏八任取。这就是逐次超松弛迭代法,当少二1时该式就是高斯法。S0R法迭代矩阵是Gs =一(丄D+ 厶)(1丄)D + U)coco整理后得到S0R迭代法的实际计算公式为:屮知竺屮_(1丄)屮)-f竺)+色.冃an少jm+艸加i= 1,2,.k= 0J,.(。)SOR方法收敛的充分必要条件是 Q(U) vl;如果|Gs | 1,则SOR方法收敛;SOR方法收敛 的必要条件是血 2x? = & 3第5页共7页-%, - x2+5召=

7、4.2解将方程组按雅可比方法写成X =0.lx2+ 0.2“ + 0.72 兀=U+ 0.2 + 0.83=0.2召+ 0.2x,+ 0.84取初始值曲=(屮比,卅叮=(0,0,o,)7按迭代公式 屮)=0甥+0.2屮+0.72并3)=0.1兀丫)+0.2兀丫)+0.83诂z=0.2xf)+0.2xf)+0.84进行迭代,其计算结果如表1所示.表表1k012345670Oo720. 9711o0571o 08531.09511.0983 00.831.0701o15711o 18531o19511.1983 人30Oo841. 1501.24821.28281.29411o2980 例例2用高

8、斯一塞德尔迭代法求解例1.解解取初始值卍=理工,専=(0,0,0,y ,按迭代公式屮)=0.朗+0.2云)+0.72 +,)= 0.1#如)+ 0.2x()+ 0.83詁側=0.2#側+ 0.24+1)+0.84进行迭代,其计算结果如下表2表表2k01234567仗)0Oo721.043081.093131o099131.099891.099991o100o9021. 167191. 195721o199471. 199931o199991.2人301. 161o1o1o1o1o 31.第6页共7页442820529777299722999633结论使用GaussSeidel迭代法迭代法,7次

9、就可以求出方程的解,收敛速度要比Jacobi迭 代法收敛快(达到同样的精度所需迭代次数少);但是这个结论,在一定条件下才是对的,甚 至有这样的方程组,雅可比方法收敛,而高斯一塞德尔迭代法却是发散的.4附录程序/*求解线性方程组-GaussSeidel迭代法*/#incIude # i ncIude using namespace std;/*二维数组动态分配模板*/template T* Al location1D(int n)T *a;a二new Tn;return a;/*求矩阵的一范数*/float matr i x_category (float* xrint n) float tem

10、p = 0;for (int i=0; ipreci si on;/*动态生成增广矩阵*/cout endln;a二Al location2Df loatXn, n+1);/*输入增广矩阵的各值*/cout endl ”输入增广矩阵的各值:n” ; for (i=0; i ai j;/*生成并初始化初始向量*/x_0 = Allocation1D (float(n);coutendl”输入初始向量:n”;for(i=0;in;i+)cinx_0订;/*生成迭代向量*/x_k = AI Iocat i on1D (n);float temp;/*迭代过程*/for (k=0; kMAX;k+)/

11、增广矩阵/初始向量/迭代向量/精度第9页共7页for (i=0;in; i+)temp二0;for(j=0; ji; j+)temp = temp + ai j* x_kj;)x_ki = ai n temp;temp二0;for (j=i+1;j n; j+)temp = temp + a i j * x_0j;x_ki =(x_ki temp) / ai i;/*求两解向量的差的范数*/for (i=0;i n; i+)x_0 i二x_k i- x_0 i;if (matrix_category(x_0, n)precision) 一break;elsefor (i=0;in;i+)x_0 i二x_ki;1/*输岀过程*/i f (MAX = k)cout迭代不收敛n;)cout” 迭代次数为:k

温馨提示

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

评论

0/150

提交评论