- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验02 Matlab程序设计
实验目的:
1.掌握脚本式M文件和函数式M文件的编写、调试和运行;
2.掌握从分析问题到算法设计再到程序实现的全过程。
[200,300]之间第一个能被21整除的整数的脚本式M文件脚本式M文件P(x)=anxn+an-1xn-1+…+a1x+a0的值的函数式M文件(不能调用函数polyval),要求通过实例调试通过。
4.编写计算第n个Fibonnaci数的函数式M文件,并应用它求第15个Fibonnaci数。
5.按“题目分析→程序设计→实现算法的程序→实例应用”的步骤解决下面的问题。
救援问题:假设洪水把一个村庄淹没了,只有那些比较高的房屋的屋顶露出水面,人们已经爬上屋顶等待求援。如图,在图的原点是大本营,救生船每次从大本营出发,救了人之后将人送回大本营。图中的点代表屋顶,每个屋顶由其位置坐标和其上的人数表示。救生船每次从大本营出发,以速度50米/分钟驶向下一个屋顶,达到一个屋顶后,救下其上的所有人,每人上船1分钟,船原路返回,达到大本营,每人下船0.5分钟。假设原点与任意一个屋顶的连线不穿过其它屋顶。假设屋顶数为50,给定屋顶数以及每个屋顶的坐标和人数,求出所有人都到达大本营并登陆所用的时间。并输出所有屋顶的坐标和人数。
z以上,内存在512Mb以上的PC;
2.Matlab 2010a及以上版本。
实验讲评:
实验成绩:
评阅教师:
月 日
实验02 Matlab程序设计
一、求[200,300]之间第一个能被21整除的整数的脚本式M文件
二、用5次多项式拟合函数y=sin(x),x∈[0,2π]的脚本式M文件x=0:pi/20:2*pi;
y=sin(x);
p=polyfit(x,y,5)
x1=0:pi/30:pi*2;
y1=sin(x1);
y2=polyval(p,x1);
plot(x1,y1,k-,x1,y2,mv)
legend(原曲线,拟合曲线)
三、求多项式P(x)=anxn+an-1xn-1+…+a1x+a0的值的函数式M文件
函数式M文件程序如下:
%求多项式p(x)=anxn+an-1xn-1+…+a1x+a0的值
%n代表多项式的次数
function y=polynomial(n,x)
n=input(请依次输入多项式的次数n:)
y=0;
coe=zeros(1,n+1)
for i=1:n+1
coe(i)=input(请依次输入多项式的系数:);
end
disp(你输入的多项式如下:)
poly2sym(coe)
x=input(请输入多项式中x的值:)
disp(多项式的值为:)
for i=1:n+1
y=y+coe(i)*x^(n+1-i);
end
函数式M文件已保存在可搜索途径范围内
四、计算第n个Fibonnaci数的函数式M文件
函数式M文件程序如下:
function F=Fb(n)
%计算第n个Fibonnaci数列
%n表示下标
F(1)=1;
F(2)=1;
for i=3:n
F(i)=F(i-1)+F(i-2);
end
end
函数式M文件已保存在可搜索途径范围内。
五、救援问题的解决
1.题目分析
根据题目分析可以把这个问题转化为一个简单的求和问题。可以单独计算出每个屋顶上的人到达大本营的时间,然后把所有时间相加即可。计算公式如下:
totalTime= totalTime+2*(sqrt(roofx(i)^2+roofy(i)^2)/speen)+roofp(i)*(up+down)
其中,totalTime是要求的总时间,N是屋顶数(本题中为50),speed是船行驶的速度(本题中为50(米/分钟)),roof(i)是第i个屋顶的坐标,roofp(i) 是第i个屋顶上的人数。因为要在计算后输出所有屋顶位置和人数,所以需要保存所有屋顶和人数信息。
2.程序设计
⑴ 定义一个结构类型数组存放屋顶信息。
⑵ 依次读入屋顶及其上的人数信息,并保存起来。
⑶ 计算所需营救时间。
⑷ 输出营救时间和所有屋顶坐标及人数。
3.实现算法的程序
%救援问题
%假设原点与任意一个屋顶的连线不穿过其它屋顶。假设屋顶数为50
%给定屋顶数以及每个屋顶的坐标和人数,求出所有人都到达大本营并登陆所用的时间。
%并输出所有屋顶的坐标和人数。
clear
num=50; %屋顶数
speen=50;
文档评论(0)