数学实验完整版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验题目:MATLAB软件与高等数学上机实验
实验问题1:
每门课程考试阅卷完毕,任课教师都要对各班的考试成绩进行统计,统计内容包括:全班人数,总得分,平均得分,不及格的人数及90分(包括90分)以上的人数.请编制程序解决这一问题,并自给一组数据验证程序的正确性.要求:使用者在提示下通过键盘输入学生成绩,计算机自动处理后,显示需要的结果.
1.问题分析:
要求得出一组成绩的人数、总分、平均分、不及格人数、优秀人数。通过数组模长length 得出人数,由求和sum得到总分,除以总人数就得到平均分。通过循环,条件语句判断出不及格和优秀的人数。
2.程序设计:
a=input('chengji a[n]= '); %输入变量
n=length(a);%计算人数
y=sum(a); %求和计算总分
z=y./n; %计算平均分
k=0;s=0; %初值
for i=1:n %步长为一
if a(i)<60
k=k+1; %统计不及格人数
elseif a(i)>=90
s=s+1; %统计优秀人数
end
end
fprintf('total=%.0f average=%.3f failures=%.0f
winners=%.0f\n',y,z,k,s);
3.举例运行结果如下:
4,问题拓展:可以统计不同分数段的人数,可以转化成等级的形式。
实验问题2:
求[2,999]中同时满足下列条件的数
(1)该数各位数字之和为奇数
(2)该数是素数
问题分析
该题涉及了素数、各位数字之和的求法,以及如何判断某数为奇数的方法。首先,建立循环,创建2到999的数列,作为判断的基础。在判断是否为素数的环节中,使用isprime的函数,直接求出了素数。接着,是如何求个位数字之和的问题。其中,使用了mod函数和floor函数,mod函数所求的是余数,floor函数所求的是不小于出除数的最小整数。判断是否为奇数时,若该数可被2整除,则判断为奇数。
for x=2:999;
分析:定义循环变量,从2到999,以1为步长。
if(isprime(x)==1&&mod(mod(x,10)+floor(mod(x,100)./10)+floor(x./10 0),2)==1)
分析:判断环节。isprime(x)==1判断x是否为素数; mod(x,10)即求x在个位上的数字;
floor(mod(x,100)./10即求x在十位上的数字;floor(x./100)即求x在百位上的数字。
fprintf(' a=%.0f\n',x);
分析:输出数据。
end
end
程序设计
问题求解结果与结论
结论:从2到999各位数字之和为奇数且是素数的数有
3、5、7、23、29、41 、43 、47 、61 、67 、83 、89 、113 、131 、137 、139 、151 、157 、173 、179 、191 、193、197、199、223 、227 、229 、241 、263、269 、281 、283、311 、313 、317、331、337 、353、359、373、379 、397 、401 、409 、421、443 、449、461 、463 、467、487 、557 、571 、577 、593 、599、601、607 、641 、643、647 、661 、683 、719 、733、739 、751 、757 、773、797、809 、821、823、827 、829、863、881 、883 、887 、911 、919 、937 、953、971、977、991、997。
4,问题拓展:若题目为任意数判断其是否为素数且个位数字之和为奇数,则问题需要建立判
断程序,再输入任意数后进行判断。此外,此题的解法应用了MA TLAB中的已有的判断是否为素数的程序,如果不应用此程序,应如何判断是否为素数。
实验问题3:
在一边长为一的正方形跑道的四个顶点上个站有一人,他们同时开始以等速顺时针沿跑道水下一个人,在追击过程中,每个人时刻对准目标,是模拟追击路线。并讨论:
(1)四个人能否追到一起?
(2)若能追到一起,则每个人跑过的路程?
(3)追到一起所需要的时间(设速率为1)?
如果四个人追逐的速度不一样,情况又如何?
1
由问题一可知对于只以直线匀速运动的物体为目标进行追击的问题用解析的方法进行求解已经相当复杂而此题中涉及到目标物体的速度方向的变化且追击目标与追击者是相互影响的,故采用计算机仿真法进行求解。
2、规定和假设
首先我们做出以下定义以方便模型建立过程中对一些问题的解释:
①、将四个人分别编上号为1、2、3、4,且规定第一个人首先跑然后几乎同时的引起其他人进行追击,进行模拟。
②、我们定义追击者的象限,即以追击者所追击的人的起始位置为原点,从原点到追击者的起始位置为x轴且为正方向,建立坐标系,称该坐标系的第一象限为该追击者的象限。如若规定图中左下角的追击者为1号,逆时针依次编号为2、3、4。则以2号所在正方形的角为原点,从2号到1号的正方形的边为x轴,且方向为正,所建立起来的坐标系的第一象限为第一个追击者的象限(或称为1号的象限)。2、3、4号的象限可按照此法依次定义。
③、设1、2、3、4号在其本象限内的坐标分别为(1x,r=1y)、(2x,2y)、(3x,3y)、(4x,4y),在其下一个象限内的坐标为(x,y),在2号的象限内的坐标为(xb,yb)。
④、考虑到实际情况我们仅画出正方形边长为200米,追击者速度为3m/s时的图,且时间限制为6分钟。(由于普通人自由跑步的速度一般为3~7m/s,我们在此只考虑3m/s的情况,但是只要将程序第一行的c和a的值加以修改就可以得到不同边长和不同速度的图像。)