资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
数 值 计 算 方 法实验报告实验序号:实验二 实验名称:追赶法算法设计及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=a/u; u=b-lc; y=f-ly;Step3:当u时,x=y/u,否则转step5Step4:对于:i=n-1,n2,。,2,1,转step6 x=(y-c*x)/uStep5:无解信息,转step7Step6:输出xStep7:关机2MATLAB程序function x,L,U=thomas(a,b,c,f)n=length(b); 对A进行分解u(1)=b(1);for i=2:n if(u(i-1)=0) l(i-1)=a(i1)/u(i1); u(i)=b(i)-l(i1)c(i1); else break; endendL=eye(n)+diag(l,-1);U=diag(u)+diag(c,1);x=zeros(n,1);y=x; 求解Ly=by(1)=f(1);for i=2:n y(i)=f(i)-l(i-1)*y(i-1);end 求解Ux=yif(u(n)=0) x(n)=y(n)/u(n);endfor i=n1:-1:1 x(i)=(y(i)c(i)*x(i+1))/u(i);end3求解实例例1方程组例2方程组例3方程组四、实验结论对于追赶法我最先写的是如下的程序:但是出现了如上截图中的错误,后来与同学讨论还是没能解决我的问题,最后借鉴了她的算法得到了正确的结果。Thomas算法在课堂上老师就已经给我们详细地讲解并指导了我们如何用Matlab编程,但是并没有解决a矩阵的a1如何处理,对于这个问题,我很快解决了。我最大的问题就是如上所示,说明我的编程能力还是比较差,需要多练习。对于如上的错误希望老师看过之后能够给予指导,谢谢!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号