《实验2追赶法算法设计及MATLAB实现》由会员分享,可在线阅读,更多相关《实验2追赶法算法设计及MATLAB实现(4页珍藏版)》请在金锄头文库上搜索。
1、.数 值 计算方法实验报告实验序号:实验二 实验名称:追赶法算法设计及MATLAB实现实 验 人:专业年级:教 学 班:学 号:实验时间:实验二追赶法算法设计及MATLAB实现一、实验目的初步掌握算法设计规则;初步掌握MATLAB程序设计规则二、实验内容1构造利用追赶法求解三对角线性方程组的算法;2在MATLAB环境下编写追赶法的程序函数;3自由选择若干个三对角线性方程组求解。三、实验步骤1追赶法算法:算法名称:thomas输入参数:向量a,b,c,f输出参数:输出解信息x算法的自然语言:Step1:u=b,y=b;Step2:对于 i=2,3,.n;Step2.1:当u,否则转step5 l
2、=a/u; u=b-l*c; y=f-l*y;Step3:当u时,x=y/u,否则转step5Step4:对于:i=n-1,n-2,.,2,1,转step6 x=/uStep5:无解信息,转step7Step6:输出xStep7:关机2MATLAB程序function x,L,U=thomasn=length;% 对A进行分解u=b;for i=2:n ifu=0 l=a/u; u=b-l*c; else break; endendL=eye+diag;U=diag+diag;x=zeros;y=x;% 求解Ly=by=f;for i=2:n y=f-l*y;end% 求解Ux=yifu=0 x=y/u;endfor i=n-1:-1:1 x=y-c*x/u;end3求解实例例1方程组例2方程组例3方程组四、实验结论对于追赶法我最先写的是如下的程序:3 / 4.但是出现了如上截图中的错误,后来与同学讨论还是没能解决我的问题,最后借鉴了她的算法得到了正确的结果。Thomas算法在课堂上老师就已经给我们详细地讲解并指导了我们如何用Matlab编程,但是并没有解决a矩阵的a1如何处理,对于这个问题,我很快解决了。我最大的问题就是如上所示,说明我的编程能力还是比较差,需要多练习。对于如上的错误希望老师看过之后能够给予指导,谢谢!