- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
范文 范例 指导 参考
PAGE
学习 资料 整理 分享
范文 范例 指导 参考
学习 资料 整理 分享
数 值 计 算 方 法
实
验
报
告
实验序号:实验二
实验名称:追赶法算法设计及MATLAB实现
实 验 人:
专业年级:
教 学 班:
学 号:
实验时间:
实验二 追赶法算法设计及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,否则转step5
l=a/u;
u=b-l*c;
y=f-l*y;
Step3:当u时,x=y/u,否则转step5
Step4:对于:i=n-1,n-2,…..,2,1,转step6
x=(y-c*x)/u
Step5:无解信息,转step7
Step6:输出x
Step7:关机
2.MATLAB程序
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(i-1)/u(i-1);
u(i)=b(i)-l(i-1)*c(i-1);
else
break;
end
end
L=eye(n)+diag(l,-1);
U=diag(u)+diag(c,1);
x=zeros(n,1);
y=x;
% 求解Ly=b
y(1)=f(1);
for i=2:n
y(i)=f(i)-l(i-1)*y(i-1);
end
% 求解Ux=y
if(u(n)~=0)
x(n)=y(n)/u(n);
end
for i=n-1:-1:1
x(i)=(y(i)-c(i)*x(i+1))/u(i);
end
3.求解实例
例1.方程组
例2.方程组
例3.方程组
四、实验结论
对于追赶法我最先写的是如下的程序:
但是出现了如上截图中的错误,后来与同学讨论还是没能解决我的问题,最后借鉴了她的算法得到了正确的结果。Thomas算法在课堂上老师就已经给我们详细地讲解并指导了我们如何用Matlab编程,但是并没有解决a矩阵的a1如何处理,对于这个问题,我很快解决了。
我最大的问题就是如上所示,说明我的编程能力还是比较差,需要多练习。对于如上的错误希望老师看过之后能够给予指导,谢谢!
文档评论(0)