实验2追赶法算法设计及MATLAB实现

上传人:博****1 文档编号:479546181 上传时间:2023-11-10 格式:DOCX 页数:5 大小:16.44KB
返回 下载 相关 举报
实验2追赶法算法设计及MATLAB实现_第1页
第1页 / 共5页
实验2追赶法算法设计及MATLAB实现_第2页
第2页 / 共5页
实验2追赶法算法设计及MATLAB实现_第3页
第3页 / 共5页
实验2追赶法算法设计及MATLAB实现_第4页
第4页 / 共5页
实验2追赶法算法设计及MATLAB实现_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验2追赶法算法设计及MATLAB实现》由会员分享,可在线阅读,更多相关《实验2追赶法算法设计及MATLAB实现(5页珍藏版)》请在金锄头文库上搜索。

1、数值计算方法实验报告实验序号:实验二实验名称:追赶法算法设计及MATLAB实现实验人:专业年级:教学班:学 号:实验时间:实验二追赶法算法设计及MATLAB实现一、实验目的1. 初步掌握算法设计规则;2 .初步掌握MATLAB程序设计规则.二、实验内容1. 构造利用追赶法求解三对角线性方程组的算法;2. 在MATLAB环境下编写追赶法的程序(函数);3. 自由选择若十个三对角线性方程组求解。三、实验步骤1.追赶法算法:算法名称:thomas输入参数:向量a,b,c,f输出参数:输出解信息x算法的自然语言:Stepl: u =b ,y =b ;Step2:对于 i=2,3,.n;Step2. 1

2、:当 u.牛 0,否则转 step5l. =a. /u.;u =b -l *c ; i i i i - 1y. =f. -1. *y.;Step3:当 u 牛 0 时,x =y /u,否则转 step5Step4:对于:i=n- 1 ,n-2, ,2, 1,转 step6x =(y -c *x )/u Step5 :无解信息,转step7Step6:输出 xStep7 :关机2. MATLAB 程序function x,L,U=thomas(a,b,c,f) n=length(b);%对A进行分解u(1)=b (1);for i=2:nif(u(i-1)=0)l(i-1)=a(i-1)/u(i

3、-1);u(i)=b(i)-l(i-1)*c(i-1);elsebreak;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:ny(i)=f(i)-l(i-1)*y(i-1);end%求解Ux=yif(u(n)=0)x(n)=y(n)/u(n);endfor i=n-1:-1:1x(i)=(y(i)-c(i)*x(i+1)/u(i);end3 .求解实例、/ 3=12,2, ir ; 比3, 3,3, 3 c=l, L 1; f=l,OJ 1,0,; kj Lj U =

4、thomas (a, b, c3 f)31231 3 x3 k 1 3 八 x4 721/38 -25/38 33/38 -11/38 L =10002/310006/710007/151U =310007/3100015/7100038/15例2.方程组 a= -h-1-1-1?; b=4J4J4J4J4?;f=5, 8, 16, 24, 36;K=thomas2 (田 b, c3 f)373/156178/39409/52425/391829/156例3 .方程组 a= h 11,;b=12, 12, 12, 12, 13 c=l, 1, b IT ; i=ll3 10, 10, 10,

5、11 K=thomas2 (头 b, c3 f)121/14133/47101/14133/47121/141四、实验结论对于追赶法我最先写的是如下的程序:(function k Lj U =thomas (a f) n=length(b);%对飕行分解 u(l)=b(l);for i=2:nif u(i-l)=011 (i-l)=a(i-l)/u(i-l);u(i)=b (i)-l (i-1)*c (i-1);elsebreak;endendK=zeros(nj 1);斤x ;Y二b;for i=2:nendif u(n)0k (n)=y (n)/u(n);endfor i=nl:-l:1e

6、nd a=% 1 b=3, 3, 333?; c= h h 1?; f= ijr ; k, Lj U=thomas (a bj f)? One or more output arguments not assigned during call to 1E:TDDOWNLOADworkthomas. m (thomas) 但是出现了如上截图中的错误,后来与同学讨论还是没能解决我的问题,最后借 鉴了她的算法得到了正确的结果。Thomas算法在课堂上老师就已经给我们详细 地讲解并指导了我们如何用Matlab编程,但是并没有解决a矩阵的al如何处理, 对于这个问题,我很快解决了。我最大的问题就是如上所示,说明我的编程能力还是比较差,需要多练习。 对于如上的错误希望老师看过之后能够给予指导,谢谢!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号