1、Matlab数学建模实验报告 数学实验报告实验序号: 实验一 日期: 班级姓名学号实验名称动物的体重变化问题背景描述: 某动物每天从食物中得到2500卡的热量,其中1200卡用于基本的新陈代谢,每天每kg的体重要消耗16卡,假如它每增加1kg的体重要10000卡的热量。实验目的: 需要通过建立动物体重变化的模型,并作出动物体重随时间变化的曲线。数学模型:设动物质量m,时间t,时间增量dt内质量增加为dm。且设动物的初始质量为m0=5kg,依题意我们可以得到关系式: 10000dm+16(m+dm)dt=(2500-1200)dt式子中dm*dt这个量比较小可以忽略不计。则可以得到以下式子: 1
2、0000dm+16m*dt=1300dt则可以得到dm/dt=(1300-16m)/10000 并且有m(t=0)=5则可以解得:m=325/4 - 305/(4*exp(t/625)由此就可以画出质量的变化曲线。 实验所用软件及版本:Matlab 7.10.0程序代码:dsolve(Dy=(1300-16*m)/10000,y(0)=5,x) %这个是解微分方程。ezplot(325/4 - 305/(4*exp(t/625),0,2000)title(动物质量变化)xlabel(t)ylabel(m) %质量关于时间变化的曲线实验结果:解微分方程得到的结果为 dsolve(D1y=(130
3、0-16*y)/10000,y(0)=5,x) ans = 325/4 - 305/(4*exp(x/625)作出的质量随时间变化曲线为:从图中可以看出动物随着时间的推移,质量是递增的,不过递增的速率逐渐减小,最后趋于稳定。通过带入数据计算可以得到的结果是如果动物活的时间足够长的话就可以达到质量最大值为 81.25kg。实验总结:这个实验主要一开始没有想到把那个dmdt消去就比较纠结,不过总的来说是比较简单的。从这我们可以知道在建立数学模型的时候有时候要有适当的忽略一些次要因素。抓住主要因素来分析。可以事半功倍。实验序号: 实验二 日期: 班级姓名学号实验名称有关淘汰赛的比赛场次问题问题背景描
4、述: 37支球队进行冠军争夺赛,每轮比赛中出场的每两只队伍中的获胜者以及轮空者进入下一轮,直至比赛结束。实验目的: 需要求出所进行的比赛总共有多少场。数学模型:把所有的队伍除以2,得到的整数部分就是这一轮的比赛场次,一直循环着除以2,知道最后整数部分为零。把所得的所有场次累加就可以得到最终的总的比赛场次。 参赛队伍数m=37,m=m/2 ,比赛场次n=n+m(n的初值为0);循环即可。实验所用软件及版本:Matlab 7.10.0程序代码:m=37;n=0;while m1 m=m/2; n=n+floor(m); m=ceil(m);endn实验结果: m=37;n=0;while m1 m
5、=m/2; n=n+floor(m); m=ceil(m);endnn =36可得,最终结果的总比赛场次为36场。实验总结:应该说这个实验算是很简单的一个了,所以做起来没什么难题。实验序号: 实验三 日期: 班级姓名学号实验名称架设电缆的总费用问题背景描述: 一条河宽1km,两岸各有一个城镇A与B,A与B的直线距离为4km,今需铺设一条电缆连接A于B,已知地下电缆的铺设费用是2万元/km,水下电缆的修建费用是4万元/km。实验目的: 通过建立适当的模型,算出如何铺设电缆可以使总花费最少。数学模型: 如图中所示,A-C-D-B为铺设的电缆路线,我们就讨论a=30度, AE(A到河岸的距离)=0.
6、5km,则图中:DG=4-AC cos b -1/tan c; BG=0.5km AC=AE/sin bCD=EF/sin c=1/sin c BD=则有总的花费为:W=2*(AC+BD)+4*CD;我们所要做的就是求最优解。实验所用软件及版本:Matlab 7.10.0程序代码:b1=0;c1=0;BG=0.5;Wmin=100;for b=0:0.1:pi/2 for c=0:0.1:pi/2 AC=0.5/sin(b); CD=1/sin(c); DG=abs(4-AC*cos(b)-1/tan(c); BD=sqrt(DG2+BG2); w=2*(AC+BD)+4*CD; b c w
7、if w0则为正号,反之则为负号)实验所用软件及版本:Matlab 7.10.0程序代码:R=5;v=6;w=4;dogx=0;dogy=0;manx=R;many=0;t=0;dt=0.05;while(sqrt(manx-dogx)2+(many-dogy)2)0.1)yuxian=abs(manx-dogx)/sqrt(manx-dogx)2+(many-dogy)2); zhengxian=abs(many-dogy)/sqrt(manx-dogx)2+(many-dogy)2); manx=R*cos(v*t/R);many=R*sin(v*t/R);if manx=dogx fxx
8、=1;else fxx=-1;endif many=dogy fxy=1;else fxy=-1;enddogx=dogx+fxx*w*yuxian*dt;dogy=dogy+fxy*w*zhengxian*dt; plot(manx,many,b*,dogx,dogy,r+)hold onaxis(-5,5,-5,5)pause(0.001)t=t+dt; endt实验结果:当人的速度为6m/s,狗的为4m/s时:说明追不上。当狗的速度为6m/s,人的速度为4m/s时追上了,且时间为t=1.8。实验总结:这个实验算是第一次接触的通过matlab来描绘出一个动态的轨迹问题。做起来比较有意思。也
9、让自己学会了如何更加正确的去分析建立一个数学模型从而解决问题。实验序号: 实验五 日期: 班级姓名学号实验名称两圆的相对滚动问题背景描述: 有一个小圆在大圆内沿着大圆的圆周无滑动的滚动。实验目的: 用matlab编程探讨小圆上一点的运动轨迹。数学模型: 设小圆滚动的线速度为0.5m/s,则有:a=vt/R, 又有Ra=rb可以得到t时刻小圆的圆心坐标为:Ox=(R-r)*cos(v*t/R); Oy=(R-r)*sin(v*t/R);我们研究的是起始点坐标为(5,0)这点的轨迹,这个点的坐标可以表示为:x1=Ox+r*cos(v*t/r-v*t/R); y1=Oy-r*sin(v*t/r-v*
10、t/R);则可以根据圆心坐标做圆的滚动同时根据点(x1,y1)坐标来画出这个点的轨迹。实验所用软件及版本:Matlab 7.10.0程序代码:r=1;R=5;t=0;dt=1;v=0.5;x0=5;y0=0;x1=;y1=;for t=0:dt:100 Ox=(R-r)*cos(v*t/R); Oy=(R-r)*sin(v*t/R); m=Ox+r*cos(v*t/r-v*t/R); n=Oy-r*sin(v*t/r-v*t/R); axis(-5,5,-5,5); ezplot(x2+y2-25); hold on for t=0:0.01:2*pi x2=Ox+r*cos(t); y2=Oy+r*sin(t); plot(x2,y2,r) end x1=x1,m;y1=y1,n; axis(-5,5,-5,5); plot(x1,y1,b*); hold off pause(0.0001);end(转下页)实验结果:当大圆半径为R=5,小圆半径r=1,速度为v=0.5时可以得到轨迹为:实验总结:对于这个实验和第四个实验慢跑者与狗有点异曲同工的意思,主要是对于在这个运动过程中那个轨迹点的分析要准确。这样就可以比较容易快速的作出轨迹。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1