Gauss-Seidel迭代法

上传人:wd****8 文档编号:305491329 上传时间:2022-06-07 格式:DOC 页数:8 大小:192KB
返回 下载 相关 举报
Gauss-Seidel迭代法_第1页
第1页 / 共8页
Gauss-Seidel迭代法_第2页
第2页 / 共8页
Gauss-Seidel迭代法_第3页
第3页 / 共8页
Gauss-Seidel迭代法_第4页
第4页 / 共8页
Gauss-Seidel迭代法_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《Gauss-Seidel迭代法》由会员分享,可在线阅读,更多相关《Gauss-Seidel迭代法(8页珍藏版)》请在金锄头文库上搜索。

1、-数值分析课程论文: *:Gauss-Seidel迭代法求解线性方程组摘要 线性方程组的求解在许多的工程技术中是一个极为常见的问题,对于线性方程组的求解无论从理论上还是实践应用上都已经成熟.对于一般线性方程组的求解有Gauss消元法为根底的直接法,也有迭代法.其中Gauss-Seidel是一个重要的组成局部.鉴于此,本论文细致地研究了用Gauss-Seidel迭代法求解线性方程组. 论文的第一局部先介绍了迭代法求解线性方程组的一般模式,并给出这种迭代法的收敛性条件,Gauss-Seidel迭代法求解线性方程组的根本原理.这一局部是Gauss-Seidel迭代法的理论根底.论文的第二局部给出了G

2、auss-Seidel迭代法的具体操作步骤,以伪代码的形式细致的描绘如何使用Gauss-Seidel迭代法的求解方程组.同时,为了验证算法的有效性,在这一局部,还引入一个简单的算例,用于MATLAB编程发现计算结果完全正确.论文的第三局部给出了关于Gauss-Seidel迭代法的MATLAB程序,用于计算线性方程组.关键词:Gauss-Seidel迭代法,根本原理,算例,MATLAB程序目 录1 Gauss-Seidel迭代法的根本理论.11.1线性方程组的迭代法求解.11.2Gauss-Seidel迭代法的原理.22.具体的算例和操作步骤.32.1. Gauss-Seidel迭代法的伪代码.

3、32.2.具体的算例验证算法的有效性.33MATLAB程序.4参考文献.6. z.-Gauss-Seidel迭代法求解线性方程组一. Gauss-Seidel迭代法的根本理论1.1线性方程组的迭代法求解在考虑求解线性方程组A*=b时,其中A为非奇异矩阵.尽管Guass消元法通过有限次运算可以求解此问题,其对应的计算复杂度为.但是对于工程技术中和*些偏微分方程过程中出现的大型稀疏型矩阵利用迭代法可以更快的收敛,找到解.另外一方面,由于迭代法占用的计算机存少,且便于计算.这两方面的优势促成了迭代法求解线性方程组的研究.关于迭代法的收敛的几个判定条件1迭代法根本原理设有方程组,对于任意初始向量及任意

4、,解此方程组的迭代法即收敛的充要条件是.2迭代法收敛的充分条件如果方程组的迭代公式为为任意初始向量,且迭代矩阵的*一种数,则:迭代法收敛;.定理3如果为严格对角占优阵或为不可约弱对角占优阵,则对于任意的,解方程组的Jacobi迭代法,Gauss-Seidel迭代法均收敛.定理4如果为对称正定矩阵,且,则解式的SOR方法收敛.1.2Gauss-Seidel迭代法的原理由Jacobi方法迭代公式可知,迭代的每一步计算过程,都是用的全局部量来计算的所有分量,显然在计算第个分量时,已经计算出的最新分量,没有被利用.从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第次近似的分

5、量加以利用,就得到所谓解方程组的Gauss-Seidel迭代法简称G-S方法:初始向量,或写为上面第2个式子利用了最新计算出的分量,第个式子利用了计算出的最新分量.还可写成矩阵形式,假设设存在,则,于是Gauss-Seidel迭代公式的矩阵形式为,其中 ,.由此可以看出,应用Gauss-Seidel迭代法解式,就是对方程组应用迭代法.称为解式的Gauss-Seidel迭代法的迭代矩阵.Gauss-Seidel迭代法的一个明显优点是,在用计算机计算时,只需一组工作单元,以便存放近似解.由式可以看出,每迭代一步只需计算一次矩阵与向量的乘法.二具体的算例和操作步骤2.1. Gauss-Seidel迭

6、代法的伪代码1.输入问题的参数A,b2.分解A为D,L,U.3.计算迭代方程G,f.4.开场迭代,随机设定一个初值.5.以迭代方程更新*的值.6.如果到达迭代次数,则进入步骤7;否则,回到步骤5.7.输出*,完毕.2.2.具体的算例验证算法的有效性求解如下的线性方程组这个方程的真实解为3,2,1.程序运行结果:情况1:输入GSA,bGS(A,b)*his = 0 0 0 2.5000 2.0909 1.2273 2.9773 2.0289 1.0041 3.0098 1.9968 0.9959 2.9998 1.9997 1.0002 2.9998 2.0001 1.0001 3.0000 2

7、.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000 3.0000 2.0000 1.0000ans = 3.0000 2.00001.0000 图一。解的迭代过程程序说明:*his为迭代过程,ans为最终迭代结果.本次迭代次数为10.图一中红点标记每次迭代的解的轨迹。从图中可以看出,初始值选择在0,0,0,经过几次就应经到达很高的精度,说明GaussSeidel的迭代法收敛很快。三MATLAB程序function y=GS(A,b)if(nargin=0) disp(你没有输入任何参数); A=

8、ceil(10*rand(3,3);b=ceil(10*rand(3,1); A,b GS(A,b)elseMa*Interation=10;n=length(A(:,1);D=zeros(n,n);L=zeros(n,n);U=zeros(n,n);for i=1:nfor j=1:n if(i=j) D(i,j)=A(i,j); else if(ij) L(i,j)=-A(i,j);else U(i,j)=-A(i,j);end end endendG=inv(D-L)*U;f=inv(D-L)*b;*1=zeros(n,1);*his=*1;for i=1:Ma*Interation *2=G*1+f; *1=*2; *his=*his,*1;end*his=*his;y=*1;if(n=3) plot3(*his(:,1),*his(:,2),*his(:,3),or);title(解的迭代情况);endend参考文献1卫国,matlab程序设计教程,中国水利水电,2021年2 庆扬,王能超,易大义,数值分析,华中科技大学,2021年3卓金武 永生 健 必文,matlab在数学建模中的应用 航天航空 2021年. z.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号