jacobi 迭代法与gauss-seidel迭代法算法比较

jacobi 迭代法与gauss-seidel迭代法算法比较

ID:32733399

大小:181.00 KB

页数:10页

时间:2019-02-15

上传者:linlin921
jacobi 迭代法与gauss-seidel迭代法算法比较_第1页
jacobi 迭代法与gauss-seidel迭代法算法比较_第2页
jacobi 迭代法与gauss-seidel迭代法算法比较_第3页
jacobi 迭代法与gauss-seidel迭代法算法比较_第4页
jacobi 迭代法与gauss-seidel迭代法算法比较_第5页
资源描述:

《jacobi 迭代法与gauss-seidel迭代法算法比较》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

标准实用Jacobi迭代法与Gauss-Seidel迭代法算法比较文案大全 标准实用目录1引言11.1Jacobi迭代法21.2Gauss-Seidel迭代法21.3逐次超松弛(SOR)迭代法32算法分析33结论54附录程序5参考文献8文案大全 标准实用Jacobi迭代法与Gauss-Seidel迭代法比较1引言解线性方程组的方法分为直接法和迭代法,直接法是在没有舍入误差的假设下,能在预定的运算次数内求得精确解,而迭代法是构造一定的递推格式,产生逼近精确值的序列。这两种方法各有优缺点,直接法普遍适用,但要求计算机有较大的存储量,迭代法要求的存储量较小,但必须在收敛性得以保证的情况下才能使用。对于高阶方程组,如一些偏微分方程数值求解中出现的方程组,采用直接法计算代价比较高,迭代法则简单又实用,所以比较受工程人员青睐。迭代法求解方程组就是构造一个无限的向量序列,使它的极限是方程组的解向量。即使计算机过程是精确的,迭代法也不能通过有限次算术运算求得方程组的精确解,而只能逐步逼近它。因此迭代法存在收敛性与精度控制的问题。迭代法是常用于求解大型稀疏线性方程组(系数矩阵阶数较高且0元素较多),特别是某些偏微分方程离散化后得到的大型稀疏方程组的重要方法。设n元线性微分方程组(1)的系数矩阵A非奇异,右端向量,因而方程组有唯一的非零解向量。而对于这种线性方程组的近似解,前辈们发展研究了许多种有效的方法,有Jacobi迭代法、Gauss—Seidel迭代法,逐次超松弛迭代法(SOR法),这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A分解成两个矩阵N和P的差,即;其中N为可逆矩阵,线性方程组(1)化为:可得到迭代方法的一般公式:(2)其中:,,对任取一向量作为方程组的初始近似解,按递推公式产生一个向量序列,,...,,...,当足够大时,此序列就可以作为线性方程组的近似解。一阶定常迭代法收敛的充分必要条件是:迭代矩阵G的谱半径小于1,即;又因为对于任何矩阵范数恒有‖G‖,故又可得到收敛的一个充分条件为:‖G‖<1。文案大全 标准实用1.1Jacobi迭代法若D为A的对角素构成的对角矩阵,且对角线元素全不为零。可以将系数矩阵A分解为:其中,D为系数矩阵A的对角元素构成的对角阵,L为严格下三角阵,U为严格上三角阵。在迭代法一般形式中,取,,形成新的迭代公式,其中任取,则Jacobi迭代的迭代公式为:(3)式中:;,称为Jacobi迭代矩阵.其计算公式为:,(4)如果迭代矩阵的谱半径,则对于任意迭代初值,Jacobi迭代法收敛;如果‖GJ‖<1,则Jacobi迭代法收敛;如果方程组的系数矩阵是主对角线按行或按列严格占优阵,则用Jacobi迭代法求解线性方程组必收敛。1.2Gauss-Seidel迭代法从Jacobi迭代可以看出,用计算时,需要同时保留这两个向量。事实上如果每次获得的分量能够在计算下一个分量时及时更新的话,既节省了存储单元,又能使迭代加速,这就是Gauss-Seidel方法。对于非奇异方程组,若D为A的对角素构成的对角矩阵,且对角线元素全不为零;系数矩阵A的一个分解:(5)在迭代法一般形式中,取,,形成新的迭代公式,其中任取,则Gauss-Seidel迭代法的迭代公式为:(6)上式中:是其右端常数项;为Gauss-Seidel迭代法的迭代矩阵,其计算公式为:,(7)若GS法收敛的充分必要条件是;如果‖GG‖<1,则GS法收敛;如果线性方程组的系数矩阵A为主对角线按行或按列严格占优阵,或者为正定矩阵,则对于任意初值用GS法求解必收敛。文案大全 标准实用1.3逐次超松弛(SOR)迭代法一般而言,因Jacobi迭代收敛速度不够快,所以在工程中用的并不是太多。并且在Jacobi迭代收敛速度很慢的情况下,通常Gauss-Seidel迭代法也不会太快。可以对Gauss-Seidel迭代公式做适度修改,提高收敛速度,这就是逐次超松弛迭代法。设线性方程组的系数矩阵A满足,。可将系数矩阵A分解为(8)其中实常数>0称为松弛因子。在迭代法一般形式中,取,得到迭代公式,(9)其中任取。这就是逐次超松弛迭代法,当=1时该式就是高斯法。SOR法迭代矩阵是整理后得到SOR迭代法的实际计算公式为:;(10)SOR方法收敛的充分必要条件是;如果‖GS‖<1,则SOR方法收敛;SOR方法收敛的必要条件是;如果方程组的系数矩阵A是主对角线按行或者列严格占优阵,则用的SOR方法求解必收敛;如果方程组的系数矩阵是正定矩阵,则用的SOR方法求解必收敛。2算法分析例1用雅可比迭代法求解下列方程组解将方程组按雅可比方法写成文案大全 标准实用取初始值按迭代公式进行迭代,其计算结果如表1所示。表10123456700.720.9711.0571.08531.09511.0983…00.831.0701.15711.18531.19511.1983…00.841.1501.24821.28281.29411.2980…例2用高斯——塞德尔迭代法求解例1.解取初始值,按迭代公式进行迭代,其计算结果如下表2表20123456700.721.043081.093131.099131.099891.099991.100.9021.167191.195721.199471.199931.199991.201.16441.282051.297771.299721.299961.31.3文案大全 标准实用3结论使用Gauss-Seidel迭代法迭代法,7次就可以求出方程的解,收敛速度要比Jacobi迭代法收敛快(达到同样的精度所需迭代次数少);但是这个结论,在一定条件下才是对的,甚至有这样的方程组,雅可比方法收敛,而高斯—塞德尔迭代法却是发散的.4附录程序/*求解线性方程组--Gauss-Seidel迭代法*/#include#includeusingnamespacestd;/*二维数组动态分配模板*/templateT**Allocation2D(intm,intn){T**a;a=newT*[m];for(inti=0;iT*Allocation1D(intn){T*a;a=newT[n];returna;}/*求矩阵的一范数*/floatmatrix_category(float*x,intn){floattemp=0;for(inti=0;i>precision;/*动态生成增广矩阵*/cout<>n;a=Allocation2D(n,n+1);/*输入增广矩阵的各值*/cout<>a[i][j];}}/*生成并初始化初始向量*/x_0=Allocation1D(n);cout<>x_0[i];}/*生成迭代向量*/x_k=Allocation1D(n);floattemp;/*迭代过程*/for(k=0;k

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭