王勇数学实验2.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
王勇数学实验2

实验2 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及以上版本。 实验讲评: 实验成绩: 评阅教师: 20 年 月 日 实验2 Matlab程序设计 一、求[200,300]之间第一个能被21整除的整数的脚本式M文件 二、用5次多项式拟合函数y=sin(x),x∈[0,2π]的脚本式M文件 clc clear x=0:0.1:2*pi; y=sin(x); p=polyfit(x,y,5) x1=0:0.1:2*pi; y1=polyval(p,x1); plot(x,y,*,x1,y1,k) 三、求多项式P(x)=anxn+an-1xn-1+…+a1x+a0的值的函数式M文件 %求多项式P(x)=anxn+an-1xn-1+…+a1x+a0的值的函数式M文件 function?y=subs(p,x)???? ??syms?x;?????????????????????????? ??p=x.^3+2*x.^2+1;??????????????????????????? ??end? 四、计算第n个Fibonnaci数的函数式M文件 %计算第n个fibonnaci数的函数式M文件 function f=Fibonnaci(n) if n2 f=Fibonnaci(n-1)+Fibonnaci(n-2); else f=1; end 五、救援问题的解决 1.题目分析 这是一个实际问题的求和问题. 2.程序设计 (1)定义结构类型的数组以存放屋顶的信息。 (2)依次读入屋顶及其上的人数信息,并保存起来。 (3)function [x,y,r,p,t]=jiuyuan(m) % x为各个屋顶的横坐标 y为各个屋顶的纵坐标 % r为各屋顶的人数 % p为各屋顶到大本营的距离单位(米) % t为救援所用时间单位(分) % rand(n,m)生成n行m列在元素(0,1)之间的随机矩阵 % randsrc(n,m,[c:d])生成n行m列元素在区间[c,d]上的不平均矩阵x=rand(1,m)*10; y=rand(1,m)*10; r=randsrc(1,m,[1:10]); for i=1:m p(i)=sqrt(x(i)^2+y(i)^2); end t=2*p(i)/50+(r(i)*1.5); end 调用[x,y,r,p,t]=jiuyuan(50) 4.实例应用 六、奖金问题的解决 1.题目分析 首先会想到要把128个村民报的数字读进来,一边读一边判断是否与M相同,如果相同就记下这个村民的编号,并累计获奖村民的人数, 最后用记下来的获奖人数去除M,得到每个人所得的奖金。 2.程序设计 定义一个M为奖金,定义N为获奖人数,用一个矩阵a=[]来进行对某个村民的出生年月日的计算,用矩阵c=size(b,2)来计算有多少人,sum用来求某个村民年月日之和,用两个嵌套的for循环来实现对某个村民的年月日之和和对获奖的第i个村民的记录,以及第i个获奖村民的金额 3.算法描述 (1)定义一个数组存放所有村民上报的数据。 (2)定义一个数组存放获奖者的编号。 (3)定义一个整数存放获奖者人数。 (4)村民顺序报上数字,其相应的编号就是存放其数据的数组元素下标:0,1,2,…。 4.实现算法的程序 clear all clc M=15;%奖金 N=0;%获奖人数 a=[1 2 3 3 4 5 6 4

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档