欢迎来到天天文库
浏览记录
ID:57614201
大小:109.50 KB
页数:10页
时间:2020-08-29
《狗追兔子问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三实验问题:如图所示,有一个猎狗在B点位置发现了一只兔子正东北方距离它200米的地方O处,此时兔子开始一8米/秒的速度正西北方距离位120米的洞口A全速跑去,假设猎狗在追逐兔子的时候始终朝着兔子的方向全速奔跑,,按要求完成下面的实验:(1)问猎狗能追上兔子的最小速度是多少?(2)在猎狗能追上兔子的情况下,猎狗跑过的路程是多少?(3)画出猎狗追赶兔子奔跑的曲线图。(4)假设在追赶过程中,当猎狗与兔子之间的距离为30米时,兔子由于害怕,奔跑的速度每秒减半,而猎狗却由于兴奋奔跑的速度每秒增加0.1倍,在这种情况下,再按前面的(1)—(3)完成实验任务。问题分析
2、:此题是以缉私船追赶走私船为背景的一道数学追击问题。理论基础:设t时刻狗的位置:,兔子的位置是:(,)追赶方向可用方向余弦表示为:取时间步长为△t,则在t+△t时,狗的位置,可表示为:之后比较追击点的纵坐标与兔子洞的纵坐标,以判断是否可以追上。在第一问中,利用狗的速度的循环,以是否能在规定范围内追击到为限制条件,找出能追击到的最小速度,作为狗的最小速度。在循环的过程中,避免超出界限而造成无限循环。运用了if语句,对是否可以追击到进行了选择,以达到预期的筛选目标。程序设计流程图:⑴.建立狗与兔子的横纵坐标的数组à对兔子和狗的坐标赋初值并赋值变量à按照狗速度的可
3、能值设定循环范围à循环的条件(即追击住的条件)à按照数学理论基础编写循环内容à判断是否能在入洞追击住à①是,则退出循环,此时的速度即为狗的最小速度à②否,速度递加,再次进行循环à输出狗的最小速度⑵输入狗的速度à对坐标以及一些重要的变量进行初始化赋值à进入循环,循环的条件是是否追击上兔子并且循环中追击的纵坐标不超过兔子洞的纵坐标à按照数学理论基础编写循环内容à循环结束àif语句判断追击情况à①追击过程中追击的纵坐标超过兔子洞的纵坐标,说明在规定距离没有追上,则输出速度太小à②追击点的纵坐标不超过兔子洞的纵坐标,说明在规定距离内兔子被追到了,则输出追击时间与兔子
4、的逃跑路程⑶根据上面运算时的得到的四个数组,可以画出追击图来程序内容:第一问:a=8;dogxa=[];cabbitxa=[];dogya=[];cabbitya=[];d=1;dogx=-100*sqrt(2);dogy=-100*sqrt(2);cabbitx=0;cabbity=0;t=0;dt=0.01;forb=10:0.5:40dogx=-100*sqrt(2);dogy=-100*sqrt(2);cabbitx=0;cabbity=0;t=0;while(sqrt((dogx-cabbitx)^2+(dogy-cabbity)^2)>d&cab
5、bity<200)t=t+dt;dogx=dogx+b*dt*(cabbitx-dogx)/sqrt((dogx-cabbitx)^2+(dogy-cabbity)^2);dogy=dogy+b*dt*(cabbity-dogy)/sqrt((dogx-cabbitx)^2+(dogy-cabbity)^2);cabbitx=-a*cos(pi/4)*t;cabbity=a*sin(pi/4)*t;endifcabbity<=60*sqrt(2)breakendendfprintf('theminspeedofdogid:%2f',b);第二问:a=8;b=
6、17;d=0.1;dogxb=[];cabbitxb=[];dogyb=[];cabbityb=[];dogx=-100*sqrt(2);dogy=-100*sqrt(2);cabbitx=0;cabbity=0;t=0;dt=0.01;s=0;while(sqrt((dogx-cabbitx)^2+(dogy-cabbity)^2)>d)t=t+dt;dogx0=dogx;dogy0=dogy;dogx=dogx+b*dt*(cabbitx-dogx)/sqrt((cabbitx-dogx)^2+(cabbity-dogy)^2);dogxb=[dogxb
7、,dogx];dogy=dogy+b*dt*(cabbity-dogy)/sqrt((cabbitx-dogx)^2+(cabbity-dogy)^2);dogyb=[dogyb,dogy];cabbitx=-a*cos(pi/4)*t;cabbity=a*sin(pi/4)*t;cabbitxb=[cabbitxb,cabbitx];cabbityb=[cabbityb,cabbity];s=s+sqrt((dogx0-dogx)^2+(dogy0-dogy)^2);endfprintf('thelengthdogrunis:%.1f',s);第三问:pl
8、ot(dogxb,dogyb,cabbitxb,ca
此文档下载收益归作者所有