欢迎来到天天文库
浏览记录
ID:18997672
大小:89.00 KB
页数:6页
时间:2018-09-26
《实验2追赶法算法设计及matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数值计算方法实验报告实验序号:实验二实验名称:追赶法算法设计及MATLAB实现实验人:专业年级:教学班:学号:实验时间:5实验二 追赶法算法设计及MATLAB实现一、实验目的1.初步掌握算法设计规则;2.初步掌握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,否则转ste
2、p5l=a/u;u=b-l*c;y=f-l*y;Step3:当u时,x=y/u,否则转step5Step4:对于:i=n-1,n-2,…..,2,1,转step6x=(y-c*x)/uStep5:无解信息,转step75Step6:输出xStep7:关机2.MATLAB程序function[x,L,U]=thomas(a,b,c,f)n=length(b);%对A进行分解u(1)=b(1);fori=2:nif(u(i-1)~=0)l(i-1)=a(i-1)/u(i-1);u(i)=b(i)-l(i-1)*c(i-1);elsebreak;endendL=eye(n)+diag(l,-1);U
3、=diag(u)+diag(c,1);x=zeros(n,1);y=x;%求解Ly=by(1)=f(1);fori=2:ny(i)=f(i)-l(i-1)*y(i-1);end%求解Ux=yif(u(n)~=0)x(n)=y(n)/u(n);endfori=n-1:-1:1x(i)=(y(i)-c(i)*x(i+1))/u(i);5end3.求解实例例1.方程组例2.方程组例3.方程组5四、实验结论对于追赶法我最先写的是如下的程序:5但是出现了如上截图中的错误,后来与同学讨论还是没能解决我的问题,最后借鉴了她的算法得到了正确的结果。Thomas算法在课堂上老师就已经给我们详细地讲解并指导了我们
4、如何用Matlab编程,但是并没有解决a矩阵的a1如何处理,对于这个问题,我很快解决了。我最大的问题就是如上所示,说明我的编程能力还是比较差,需要多练习。对于如上的错误希望老师看过之后能够给予指导,谢谢!5
此文档下载收益归作者所有