欢迎来到天天文库
浏览记录
ID:31834142
大小:343.50 KB
页数:39页
时间:2019-01-20
《数值分析课程实习报告-迭代法求取线性方程组的近似解.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程实习报告课程名称:数值分析课程实习实习题目:利用Matlab软件编程运用迭代法求取线性方程组的近似解姓名:系:专业:年级:学号:指导教师:职称:年月日课程实习报告评分表序号项目评分权值评定成绩1算法:正确,步骤合理0.32程序:画流程图,用语言或数学软件编写0.23质量:分析处理科学;文字通顺;计算及测试结果准确;0.44工作量、工作态度:按期完成规定的任务,工作量饱满;工作努力,遵守纪律0.1合计1指导教师签名:年月日目录1.实习的目的和任务12.实习要求13.实习地点14.主要仪器设备15.实
2、习内容15.1算法思想15.2实习步骤35.3流程图35.4MATLAB程序55.5实例分析85.6结果分析326.总结35参考文献36数值分析课程实习1.实习的目的和任务目的:熟练运用MATLAB数学软件,了解数值计算方法及其应用,提高计算的效率和计算的精度,针对题目编制程序,通过课程实习达到能够应用软件解决实际问题。任务:编写运用迭代法解线性方程组的近似解的程序,用Jacobi迭代法、Gauss-Seidel迭代法、逐次超松弛迭代法研究数值问题。掌握Jacobi迭代法、Gauss-Seidel迭代
3、法、逐次超松弛迭代法的格式,以及掌握迭代收敛性及收敛速度的判断。2.实习要求从线性方程组迭代法的基本思想中,转变为MATLAB代码,深化对求解线性方程组的近似解的解法知识的理解。根据给定的系数矩阵A和右端矩阵b,利用公式去编写MATLAB代码,对所求的结果进行比较,并进行收敛性及收敛速度的判断。深入对线性方程组解法的认识的,掌握更多的方法来求得方程组的解。3.实习地点数学实验室、学生宿舍4.主要仪器设备硬件:计算机软件:MicrosoftWindows7MATLAB7.05.实习内容5.1算法思想根据
4、方程组设计出一个迭代公式,然后将任意选取的一初始向量代入迭代公式,求出,再以代入同一迭代公式,求出,如此反复进行,得到向量序列。当收敛时,其极限即为原方程组的解。设方程组:,记作。5.1.1Jacobi迭代法38迭代公式:,其中为第次迭代向量,为下一次迭代向量。迭代矩阵:其中,。且5.1.2Gauss-Seidel迭代法迭代公式:迭代矩阵:,其中,。5.1.3逐次超松弛迭代法迭代公式:其中为松弛因子。当时,迭代法就转化为迭代法。迭代矩阵:。其中,。三个迭代法中矩阵为:,,385.2实习步骤1、先对Ja
5、cobi迭代法、Gauss-Seidel迭代法、逐次超松弛迭代法这三种迭代法进行MATLAB代码编写,并对三个代码绘制模块图。2、根据实例中的系数矩阵A和右端矩阵b,给定迭代误差为1e-5,用Jacobi迭代法、Gauss-Seidel迭代法和逐次超松弛迭代法进行计算。而逐次超松弛迭代法要在5个不同的松弛因子下进行计算,迭代误差也为1e-5。3、分析结果,对Jacobi迭代法、Gauss-Seidel迭代法的结果进行比较收敛性和收敛速度,并且比较一下逐次超松弛迭代法在10个不同的松弛因子下进行计算的结
6、果情况,分析计算结果并给出结论,并对三种迭代法进行评价。5.3流程图5.3.1Jacobi迭代法流程图判断收敛开始输入系数矩阵A、右端矩阵b、初始向量x0将A分为三个矩阵对角阵D、下三角阵-L、上三角阵-U,A=D-L-U带入B=D-1(L+U),f=D-1b带入x(k+1)=Bx(k)+f求出迭代值判断迭代精度结果在精度之内结束385.3.2Gauss-Seidel迭代法流程图判断收敛开始输入系数矩阵a、右端矩阵b、初始向量x0将a分为三个矩阵对角阵D、下三角阵-L、上三角阵-U,a=D-L-U带入
7、B=(D-L)-1U,f=(D-L)-1b带入x(k+1)=Bx(k)+f求出迭代值判断迭代精度结果在精度之内结束5.3.3逐次超松弛迭代法流程图判断收敛开始输入系数矩阵a、右端矩阵b、初始向量x0将a分为三个矩阵对角阵D、下三角阵-L、上三角阵-U,a=D-L-U带入B=(D-wL)-1[(1-w)D+wU],f=w(D-wL)-1b带入x(k+1)=Bx(k)+f求出迭代值判断迭代精度结果在精度之内结束385.4MATLAB程序5.4.1Jacobi迭代法MATLAB编程%jacobi迭代法计算线
8、性方程组%tol为输入误差容限,x0为迭代初值function[x,k]=Fjacobi(A,b,x0,tol)D=diag(diag(A));%求A的对角阵L=-tril(A,-1);%求A的下三角阵U=-triu(A,1);%求A的上三角阵B=D(L+U);f=Db;x=B*x0+f;%迭代公式k=0;%迭代次数[v,d]=eig(B);C=diag(d);formatlongifsum(abs(C)>=1)>0disp('谱半径大于1,迭代方程
此文档下载收益归作者所有