资源描述:
《LAB07_解线性方程组的基本迭代法实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Lab07.解线性方程组的基本迭代法实验【实验目的和要求】1.使学生深入理解Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法;2.通过对Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法的程序设计,以提高学生程序设计的能力;3.应用编写的程序解决具体问题,掌握三种基本迭代法的使用,通过结果的分析了解每一种迭代法的特点。【实验内容】1.根据Matlab语言特点,描述Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法。2.编写Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法
2、的M文件。3.给定为五对角矩阵(1)选取不同的初始向量及右端面项向量b,给定迭代误差要求,分别用编写的Jacobi迭代法和Gauss-Seidel迭代法程序求解,观察得到的序列是否收敛?若收敛,通过迭代次数分析计算结果并得出你的结论。(2)用编写的SOR迭代法程序,对于(1)所选取的初始向量及右端面项向量b进行求解,松驰系数ω取1<ω<2的不同值,在时停止迭代,通过迭代次数分析计算结果并得出你的结论。【实验仪器与软件】1.CPU主频在1GHz以上,内存在128Mb以上的PC;2.Matlab6.0及以上版本。实验讲评:实验成绩:
3、评阅教师:200年月日Lab07.解线性方程组的基本迭代法实验一、算法描述1、雅可比迭代法描述如下:将线性方程组中的系数矩阵分为三部分设选取M为A的对角元素部分,即选取M=D(对角矩阵),A=D-N,由得到解Ax=b的雅可比迭代法其中,称J为解Ax=b的雅可比迭代法的迭代矩阵。2、高斯-塞德尔迭代法描述如下:选取分裂矩阵M为A的下三角部分,即选取M=D-L(下三角矩阵),A=M-N,于是由得到解Ax=b的高斯-塞德尔迭代法,其中为解Ax=b的高斯-塞德尔迭代法的迭代矩阵。3、逐次超松弛迭代法描述如下:选取分裂矩阵M为带参数的下三
4、角矩阵,其中为可选择的松弛因子,于是由可构造一个迭代法,其迭代矩阵为,从而得到解Ax=b的逐次超松弛迭代法,简称SOR法。解Ax=b的SOR方法为,其中二、算法程序1、编写Jacobi迭代法的M文件如下:function[x,n]=Jacobi(A,b,x0,r)formatlongn=length(A);D=diag(diag(A));L=(-1)*tril(A,-1);U=(-1)*triu(A,1);B=inv(D)*(L+U);f=inv(D)*b;x=B*x0+f;n=1;whilenorm(x-x0)>=rx0=x;
5、x=B*x0+f;n=n+1;end2、编写Gauss-Seidel迭代法的M文件如下:function[x,n]=GaussSeidel(A,b,x0,r)n=length(A);D=diag(diag(A));L=(-1)*tril(A,-1);U=(-1)*triu(A,1);B=inv(D-L)*U;f=inv(D-L)*b;x=B*x0+f;n=1;whilenorm(x-x0)>=rx0=x;x=B*x0+f;n=n+1;end3、编写SOR迭代法的M文件如下:function[x,n]=SOR(A,b,x0,w,r
6、)formatlongn=length(A);D=diag(diag(A));L=(-1)*tril(A,-1);U=(-1)*triu(A,1);Lw=inv(D-w*L)*((1-w)*D+w*U);f=w*inv(D-w*L)*b;x=Lw*x0+f;n=1;whilenorm(x-x0)>=rx0=x;x=Lw*x0+f;n=n+1;end三、数值实验矩阵A的程序表示如下:functionA=lucius()A=[3-1/2-1/400000000000000000;-1/23-1/2-1/400000000000000
7、00;-1/4-1/23-1/2-1/4000000000000000;0-1/4-1/23-1/2-1/400000000000000;00-1/4-1/23-1/2-1/40000000000000;000-1/4-1/23-1/2-1/4000000000000;0000-1/4-1/23-1/2-1/400000000000;00000-1/4-1/23-1/2-1/40000000000;000000-1/4-1/23-1/2-1/4000000000;0000000-1/4-1/23-1/2-1/400000000;
8、00000000-1/4-1/23-1/2-1/40000000;000000000-1/4-1/23-1/2-1/4000000;0000000000-1/4-1/23-1/2-1/400000;00000000000-1/4-1/23-1/2-1/40000