资源描述:
《用Jacobi迭代法,Gauss-Seidol迭代法求解线性方程组,讨论收敛性.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验六解线性方程组的迭代法一、实验目标1、理解求解线性方程组的两种迭代法的求解思想:Jacobi迭代法和Gauss-Seidel迭代法。2、掌握迭代法收敛的条件,并会判断Jacobi迭代法和Gauss—Seidel迭代法的收敛性。3、学会编程实现Jacobi迭代法和Gauss—Seidel迭代法,掌握终止迭代的技术(<或k〉(予给的迭代次数))与发散性判断的方法。4、体会初始解X,松弛因子的选取,对计算结果的影响。二、实验问题解线性方程组(1);(2);(3),精确解:X=(1,-1,0,1,2,0,3,1,
2、-1,2)。(4)对称正定阵系数阵精确解:X=(1,-1,0,2,1,-1,0,2)。(5)三对角形系数矩阵精确解:X=(2,1,—3,0,1,-2,3,0,1,—1).三、实验要求1、试用Jacobi迭代法,Gauss-Seidol迭代法求解线性方程组(1),(2),讨论收敛性.2、编写Jacobi迭代法,Gauss—Seidol迭代法解线性方程组的一般程序,对不同精度要求,如,求解线性方程组(1),(2),由迭代次数体会该迭代法的收敛快慢。3、使用SOR方法求解方程组(3),(4),(5),选取松弛因子=
3、0。8,0.9,1,1.1,1.2等,观察松弛因子的不同取法对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者。附录一:《数值分析》实验报告(模板)【实验课题】用Jacobi迭代法,Gauss—Seidol迭代法求解线性方程组,讨论收敛性【实验目标】1、理解求解线性方程组的Jacobi迭代法,Gauss-Seidel迭代法的求解思想。2、了解迭代法收敛的条件,会判断Jacobi迭代法和Gauss—Seidel迭代法的收敛性。3、学会编程实现Jacobi迭代法和Gauss-Seidel迭代法,掌握终止迭代的
4、技术(〈或k>(予给的迭代次数))与发散性判断的方法.【理论概述与算法描述】1.雅可比迭代法对于矩阵A,A=D—L-U,令M=D,则A=D-N,则雅克比迭代法=B+f,其中B-I-1/DA=D^-1(L+U)=J,,由雅可比迭代法得分量计算公式。计=,所以,因此雅可比迭代法得计算公式i=1,2,3。。..。。。,k=0,1,2.。..。1.高斯塞德尔迭代法令M=D-L,A=M—N,得B=(D-L)^-1U=G,G为高斯塞德尔迭代法的迭代矩阵,得到,所以高斯塞德尔计算公式为,=(),i=1,2,3。...。。。
5、,k=0,1,2。。..。【实验问题】用Jacobi迭代法,Gauss—Seidol迭代法求解线性方程组,判断收敛性【实验过程与结果】1.理解两种迭代法的计算思想,掌握方法推到计算公式2.用matlab编程实现3.对实验结果进行分析,比较两种方法,并判断收敛性【结果分析、讨论与结论】两种方法得到的结果一样,雅可比k=17x=—0。1348-1.08293。92032.高斯塞德尔k=17x=—0.1348—1。08293。9203【附程序】1.雅可比程序算法functionx=jacobi(A,b,x0,tol
6、)n=length(b);x=zeros(n,1);x=x0+1;k=0;whilenorm(x-x0)〉tolifk〉20disp('jacobifails')break;endk=k+1;fori=1:nx0=x;x(i)=(b(i)-A(i,1:n)*x0+A(i,i)*x(i))/A(i,i);endendk1.高斯塞德尔程序算法functionx=gaussseided(A,b,x0,tol)n=length(b);x=zeros(n,1);x=x0+1;k=0;whilenorm(x-x0)>to
7、lifk>20disp('gaussseidedfails:')break;endk=k+1;fori=1:nx0=x;x(i)=(b(i)—A(i,1:(i—1))*x(1:(i-1))-A(i,(i+1):n)*x((i+1):n))/A(i,i);endendk1.主函数A=[10.40.4;0。410.8;0.40。81];b=[1;2;3];tol=1e-3;x0=[3;1;6];%x=jacobi(A,b,x0,tol)x=gaussseided(A,b,x0,tol)