《数值分析》实验报告2.docx
数值分析实验报告一、问题的提出求解线性方程组的迭代法,即是用某种极限过程去逐步逼近线性方程组的精确解的过程,迭代法是解大型稀疏矩阵方程组的重要方法。二、实验名称运用MATLAB编程实现雅可比(JaCobi)迭代和高斯赛德尔(Gauss-Seidel)迭代。三、实验目的1、熟悉了解雅可比(JaCObi)迭代和高斯赛德尔(Gauss-Seidel)迭代的算法。2、学习MATLAB软件的功能。四、基本原理五、实验环境操作环境:WindowslO实验平台:Matlab7.1软件六、试验设计1、jacobi迭代法(1)算例:课本p54页例1(2)程序清单Jacobi迭代法的MATLAB函数文件Jacobi,m如下:functiony,n=jacobi(A,b,x,eps)ifnargin-3eps-l.0e-6;elseifnargin<3errorreturnendD=diag(diag(八));%求A的对角矩阵1.=-tril(A,-l);%求A的下三角阵U=-triu(A,1);为求A的上三角阵B=D(L+U);f=Db;y=B*xO+f;11=1;%迭代次数whilenorm(y-O)>=epsx=y;y=B*xO+f;n=n+l;end(3)实验结果及分析:»A=8,-3,2;4,11,-1;6,3,12;»b=20,33,36,;»x,n=jacobi(A,b,0,0,0,1.0e-6)X=3.00002.00001.0000n=162、GaUSS-Seidel迭代法(1)算例:课本p54页例1(2)程序清单:Gauss-Serdel迭代法的MATLAB函数文件gauseidel.m如下:functiony,n=gauseidel(A,b,x,eps)ifnargin=3eps=l.0e-6;elseifnargin<3errorreturnendD=diag(diag(八));%求A的对角矩阵1.=-tril(A,-l);%求A的下三角阵U=-triu(A,1);%求A的上三角阵G=(D-L)U;f=(D-L)b;y=G*xO+f;n=l;%迭代次数whilenorm(y-0)>=epsx=y;y=G*xO+f;n=n+l;end(3)实验结果及分析:»A=8,-3,2;4,11,-1;6,3,12;»b=20,33,36,;»x,n=gauseidel(A,b,0,0,0,1.0e6)x=3.00002.00001.0000n=9七、结果说明:高斯-赛德尔迭代法比雅可比迭代法收敛得快一些(达到相同精度所需迭代次数较少)。八、实验感想通过本次的实验了解了雅可比(JaCObi)迭代和高斯-赛德尔(Gauss-Seidel)迭代的计算方法,熟悉了MATLAB的一些功能,增强了对数值分析学习的兴趣。