Matlab数学建模实验报告.docx

上传人:b****6 文档编号:5549998 上传时间:2022-12-19 格式:DOCX 页数:15 大小:228.89KB
下载 相关 举报
Matlab数学建模实验报告.docx_第1页
第1页 / 共15页
Matlab数学建模实验报告.docx_第2页
第2页 / 共15页
Matlab数学建模实验报告.docx_第3页
第3页 / 共15页
Matlab数学建模实验报告.docx_第4页
第4页 / 共15页
Matlab数学建模实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Matlab数学建模实验报告.docx

《Matlab数学建模实验报告.docx》由会员分享,可在线阅读,更多相关《Matlab数学建模实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

Matlab数学建模实验报告.docx

Matlab数学建模实验报告

数学实验报告

实验序号:

实验一日期:

班级

姓名

学号

实验

名称

动物的体重变化

问题背景描述:

某动物每天从食物中得到2500卡的热量,其中1200卡用于基本的新陈代谢,每天每kg的体重要消耗16卡,假如它每增加1kg的体重要10000卡的热量。

实验目的:

需要通过建立动物体重变化的模型,并作出动物体重随时间变化的曲线。

数学模型:

设动物质量m,时间t,时间增量dt内质量增加为dm。

且设动物的初始质量为m0=5kg,依题意我们可以得到关系式:

10000dm+16(m+dm)dt=(2500-1200)dt

式子中dm*dt这个量比较小可以忽略不计。

则可以得到以下式子:

10000dm+16m*dt=1300dt

则可以得到dm/dt=(1300-16m)/10000并且有m(t=0)=5

则可以解得:

m=325/4-305/(4*exp(t/625))由此就可以画出质量的变化曲线。

 

实验所用软件及版本:

Matlab7.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=(1300-16*y)/10000','y(0)=5','x')

ans=

325/4-305/(4*exp(x/625))

作出的质量随时间变化曲线为:

从图中可以看出动物随着时间的推移,质量是递增的,不过递增的速率逐渐减小,最后趋于稳定。

通过带入数据计算可以得到的结果是如果动物活的时间足够长的话就可以达到质量最大值为81.25kg。

 

实验总结:

这个实验主要一开始没有想到把那个dmdt消去就比较纠结,不过总的来说是比较简单的。

从这我们可以知道在建立数学模型的时候有时候要有适当的忽略一些次要因素。

抓住主要因素来分析。

可以事半功倍。

 

 

实验序号:

实验二日期:

班级

姓名

学号

实验

名称

有关淘汰赛的比赛场次问题

问题背景描述:

37支球队进行冠军争夺赛,每轮比赛中出场的每两只队伍中的获胜者以及轮空者进入下一轮,直至比赛结束。

实验目的:

需要求出所进行的比赛总共有多少场。

数学模型:

把所有的队伍除以2,得到的整数部分就是这一轮的比赛场次,一直循环着除以2,知道最后整数部分为零。

把所得的所有场次累加就可以得到最终的总的比赛场次。

参赛队伍数m=37,m=m/2,比赛场次n=n+m(n的初值为0);

循环即可。

 

实验所用软件及版本:

Matlab7.10.0

程序代码:

m=37;

n=0;

whilem>1

m=m/2;

n=n+floor(m);

m=ceil(m);

end

n

实验结果:

>>m=37;

n=0;

whilem>1

m=m/2;

n=n+floor(m);

m=ceil(m);

end

n

n=

36

可得,最终结果的总比赛场次为36场。

 

实验总结:

应该说这个实验算是很简单的一个了,所以做起来没什么难题。

 

实验序号:

实验三日期:

班级

姓名

学号

实验

名称

架设电缆的总费用

问题背景描述:

一条河宽1km,两岸各有一个城镇A与B,A与B的直线距离为4km,今需铺设一条电缆连接A于B,已知地下电缆的铺设费用是2万元/km,水下电缆的修建费用是4万元/km。

实验目的:

通过建立适当的模型,算出如何铺设电缆可以使总花费最少。

数学模型:

如图中所示,A-C-D-B为铺设的电缆路线,我们就讨论a=30度,AE(A到河岸的距离)=0.5km,则图中:

DG=4-ACcosb-1/tanc;BG=0.5kmAC=AE/sinb

CD=EF/sinc=1/sincBD=

则有总的花费为:

W=2*(AC+BD)+4*CD;

我们所要做的就是求最优解。

实验所用软件及版本:

Matlab7.10.0

程序代码:

b1=0;

c1=0;

BG=0.5;

Wmin=100;

forb=0:

0.1:

pi/2

forc=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(DG^2+BG^2);

w=2*(AC+BD)+4*CD;

b

c

w

ifw

c1=c;

b1=b;

Wmin=w;

end

end

end

b1

c1

Wmin

实验结果:

b1=

0.3000

c1=

1.1000

Wmin=

11.7526

由此我们可以知道当b=0.3,c=1.1时可以使得修建电缆的费用为最低的w=11.7526万元。

当然我们可以使b在0.2~0.4,c在1.0到1.2之间取更小的步幅来算出更加准确的值。

b1=

0.2820

c1=

1.0700

Wmin=

11.7491

这是步长为0.001时的取值。

也就是当b=0.282,c=1.070时可以使花费最少为11.7491万元。

实验总结:

这个题目可能是我题目没看好,就把A,B两个城镇不放在岸边,而是离岸还有一定的距离,所以做起来也没那么好做。

总觉得还有不足,还请老师指导!

 

实验序号:

实验四日期:

班级

姓名

学号

实验

名称

慢跑者与狗

问题背景描述:

一个慢跑者在平面上沿曲线

以恒定的速度v从(5,0)起逆时钟方向跑步,一直狗从原点一恒定的速度w,跑向慢跑者,在运动的过程中狗的运动方向始终指向慢跑者。

实验目的:

用matlab编程讨论不同的v和w是的追逐过程。

数学模型:

人的坐标为(manx,many),狗的坐标为(dogx,dogy),则时间t时刻的人的坐标可以表示为

manx=R*cos(v*t/R);many=R*sin(v*t/R);

sin

=|(many-dogy)/sqrt((manx-dogx)^2+(many-dogy)^2)|;

cos

=|(manx-dogx)/sqrt((manx-dogx)^2+(many-dogy)^2)|;

则可知在t+dt时刻狗的坐标可以表示为:

dogx=dogx(+/-)w*cos

*dt;dogy=dogy(+/-)w*sin

*dt;

(如果manx-dogx>0则为正号,反之则为负号)

实验所用软件及版本:

Matlab7.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);

ifmanx>=dogx

fxx=1;

else

fxx=-1;

end

ifmany>=dogy

fxy=1;

else

fxy=-1;

end

dogx=dogx+fxx*w*yuxian*dt;

dogy=dogy+fxy*w*zhengxian*dt;

plot(manx,many,’b*’,dogx,dogy,’r+’)

holdon

axis([-5,5,-5,5])

pause(0.001)

t=t+dt;

end

t

 

实验结果:

当人的速度为6m/s,狗的为4m/s时:

说明追不上。

当狗的速度为6m/s,人的速度为4m/s时

追上了,且时间为t=1.8。

 

实验总结:

这个实验算是第一次接触的通过matlab来描绘出一个动态的轨迹问题。

做起来比较有意思。

也让自己学会了如何更加正确的去分析建立一个数学模型从而解决问题。

 

实验序号:

实验五日期:

班级

姓名

学号

实验

名称

两圆的相对滚动

问题背景描述:

有一个小圆在大圆内沿着大圆的圆周无滑动的滚动。

实验目的:

用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*t/R);

则可以根据圆心坐标做圆的滚动同时根据点(x1,y1)坐标来画出这个点的轨迹。

实验所用软件及版本:

Matlab7.10.0

程序代码:

r=1;

R=5;

t=0;

dt=1;

v=0.5;

x0=5;

y0=0;

x1=[];

y1=[];

fort=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('x^2+y^2-25');

holdon

fort=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*');

holdoff

pause(0.0001);

end

 

(转下页)

实验结果:

当大圆半径为R=5,小圆半径r=1,速度为v=0.5时可以得到轨迹为:

 

实验总结:

对于这个实验和第四个实验慢跑者与狗有点异曲同工的意思,主要是对于在这个运动过程中那个轨迹点的分析要准确。

这样就可以比较容易快速的作出轨迹。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1