3人绕三角形追逐问题的数学模型和matlab仿真
大学生论坛 《钔 陡 院 瓠 )2007年第4期
— 个多人追逐问题的数学模型和matlab仿真
黄会明
(铜陵学院,安徽
汪 燕
铜陵 244ooo)
摘 要:追逐 问题是现实生活 中的常见问题 ,本文就三人绕正三角形 的追逐 问题建立起 了两个数学模型 :一个充分应用运
动的周期性首先给出了三人共边的充要条件 ,然后直接给出在一个周期 内三人共边 的次数及起止时刻,另一个则
利用初等数论的方法给 出了三人共边的另一个充要条件 ;利用 matlab长于计 算和强大的绘 图功能,本文分别 给出
了求...
大学生论坛 《钔 陡 院 瓠 )2007年第4期
— 个多人追逐问题的数学模型和matlab仿真
黄会明
(铜陵学院,安徽
汪 燕
铜陵 244ooo)
摘 要:追逐 问题是现实生活 中的常见问题 ,本文就三人绕正三角形 的追逐 问题建立起 了两个数学模型 :一个充分应用运
动的周期性首先给出了三人共边的充要条件 ,然后直接给出在一个周期 内三人共边 的次数及起止时刻,另一个则
利用初等数论的方法给 出了三人共边的另一个充要条件 ;利用 matlab长于计 算和强大的绘 图功能,本文分别 给出
了求解两个模型的 matlab程序 ,通过 动画仿真演示三人绕正三角形 的追逐模 型,并给 出三者共边 的时间起止 点和
共边的次数。
关键词:追逐问题;数学模型;matlab程序;动画演示
中图分类号 :O156.1 文献标识码 :A 文章编号 :1672—0547(2007)04—01 19—05
1.引言及问题
当前数学建模竞赛在世界各 国开展得如火如荼 ,我国
也不例外。数学建模竞赛涉及到 自然科学、
技术、经济、
管理等领域的方方面面,数学模型能为这些领域 中的很多
问题提供有力的数学上 的解答 .这正是数学建模竞赛 的生
命力之所在。本文解决 了如下一类多人追逐 问题,并实现 了
maflab仿真。甲乙丙三人绕着正三角形 ABC跑道(见图 1),
甲自顶点 B出发 。乙自顶点 C出
发,丙 自顶点 A出发,以同向(反时
针方 向)前进.设三 角形每边长
100米,甲每秒跑 10米 。乙每秒跑
8米 。丙每秒跑 5米。问在什么时
候开始三人第一次在三角形 的同
一 边上跑?什么时候第二次?第三
次?并推出什么时候第 20次?
B(甲) 图 l C(乙)
本文为该 问题建立了两个数学模型 :一个利用运动的
周期性直接给 出在一个周期 内三人共边 的次数及起止时
刻 :另一个则利用初等数论的方法给出了三人共边的充要
条件 。并利用 matlab长于计算和强大 的绘图功能 。分别给
出了求解两个模型的 matlab程序 。通过动 画仿真演示三人
绕正三角形的追逐模型.并给出三者共边 的时间起止点和
共边的次数。
2.数学模型
易知,甲乙丙三人绕正三角形追逐运动是周期运动 ,我
们首先求其最小正周期 T。设在一个周期内。甲、乙、丙分别
绕正三角形 ABC奔跑的圈数为 k p,其中 k P为正整
数 ,则由时间速度位移关系。得
300k 300/ 300P
下 ■ , (1) 】0 8 5 ’ L1
使得(1)式成立 的最小正 整数只 能是 k=10,/=8,p=5,
所 以最小正周期 T_300s。
关于三人追逐共边 的问题 。只要我们把第一个周期内
的共边情况讨论清楚了.三人追逐共边的问题也就迎刃而
解 了。
首先我们给出如下两个结论:
定理 1 条件如问题所述.则甲乙丙在追逐过程中不
相逢于三角形上任何一点。
证明 前面我们 已经说明 。在所给条件下 甲乙丙追逐
运动是周期运动 。最小正周期 为 T=300s。所以我们只需讨
论第一个周期 内的情形就够了。在一个周期内,甲路程为
Sl=10x3OO=30OOm。刚好从顶点 B出发沿正三角形 ABC跑了
10圈回到 B,乙路程为 S2=8x300=2400m,刚好从顶点 C出发
沿正三 角形 ABC跑 了 8圈回到
C。丙路程 为 S~=5x300=1500m,刚
好 从 顶 点 A 出 发 沿 正 三 角 形
ABC跑了 5圈回到 A。假设 甲乙
丙相逢于正三 角形 ABC上反 时
针方向距离顶点 C m处 (见图
2),则 0~
O
qm~oor(n/5);r=rem(n。5);
if r==0
fl=300·(q-1)+18008;tr=150·(q-1)+2300/10;
eheif r= 1
tl--300’q+300/10;tr=300‘q+300/8;
elseif r==.2
tl=300‘q+400/10;tr=-300‘q+500/10;
elseif r==3
tl--300‘q+1600/10;tr=-300‘q+1300/8;
else
tl--300’q+1700/8;tr=-300‘q+2200/10;
end
disp([ 第 num2str(n) 次共边 的起止 时刻为 [ num2str
(d) 。 num2str(tr) ] ])
end
下面我们给出模型二的 matlab程序 。该程序利用 mat—
lab强大的绘图功能,用形象的动画仿真演示追逐过程 ,并
且给出了第一个周期内的共边的次数及相应的起止时刻 。
%模型二的 maflab 程序一 动画演示追逐过程.
%追逐模型的程序——动 画演示追逐过程.
clear all;close all
format long;%数据用 lang格式 ,只是为了起止时刻记录的
更精确一点
%初始状态 :等边三角形,甲乙二人 的位置.
x=[O 100 500];)r=[O0 50·sqrt(3)0];
plot(x。Y。qinewidth',3);
text(O。-4, );text(99。-4,,C );text(49。90。 );
a 8([一10 110-10 95]);hold on
. - 122 --
%甲及其所在的位置.
hi--plot(O,O);set(hl,"color ,,r ,"marker , 0 ,"erase ,"xor 。
"LineWidth ,6);
%乙及 其所 在 的位 置.
h2=plot(100,O); set(h2,"color ,,m 。"m~ll"ker 。1l ,"erase ,
"xor ,1_Jinewidth 。4);
h3=plot(50,50★sqrt(3));set(h3,"color 。,g ,"marker ,,p ,
"erase
,
"
xor ,1_JinewidtIl ,5);
title(~秒后开始追逐 (圆圈代表 甲,六角星代表 乙,五角星
代表丙 ) );hold off;pause(3)
%下面动画演示追逐过程(一个周期的情形).
dt=l/48;t--O:dt:300%一个周期为 T=150秒.
s=zeros(3,1);c=[];ss=[];next=l;
x1=[];y1=[];x2=[];y2=[];x3=[];y3=[];
for i=l:length(t)
s(1)=10-t(i);
s(2)=8★t(i);s(3)=5★t(i);
k=floor(s/!O0);l=s-k★100;
as(:,i)-l;p=mod(k,3);
axis([一10 110—10 953);
%对甲的描述.
ifp(1)--0
xl(i)-l(1);yl(i)=0;
set(hl。"Xdata',xl(i),"Ydata',yl(i));
drawnow
elseif p(1)= 1
xl0)=100-1(1)·cos(pi/3);yl(i)-l(1)·sin(pi/3);
set(hl,"Xdata',xl(i),"Ydata',yl(i));
drawnow
else ‘
x1(i)--50-1(1)·sin(pi/6);
yl(i)--50‘sqrt(3)-l(1)·cos(pi/6);
set(hl,"Xdata ,xl(i),"Ydata 。yl(i));
drawnow
end
%对乙的描述.
ifp(2)=---O
x2(i)=100-1(2)·cos(pi/3);y2(i)::l(2)·sin(pi/3);
set(h2。"Xdata 。x2(i)。"Ydata 。y2(i));
drawnow
elseifp(2)w~ l
x2(i)=50-1(2)·sin(pi/6);
y2(i)--50·sqa(3)-l(2)·cos(pi/6);
set(h2,"Xdata 。x2(i),"Tdata 。y2(i));
drawnow
else
x2(i)-l(2);y2(i) O;
set(h2。"Xdata 。x2(i),"Ydata 。y2(i));
drawnow
end
%对丙的描述
维普资讯 http://www.cqvip.com
<局订陡 鹰 最 )2007年第4期
if p(3)--O
x3(i)=(100--1(3)) cos(pi/3);
y3(i)=(100-1(3))·sin(pi/3);
set(h3,"Xdata',x3(i),"Ydata',y3(i));
drawnow
elseif p(3)=:1
x3(i)=1(3);y3(i)=0;
set(h3,"Xdata',x3(i),"Ydata",y3(i));
drawnow
else
x3(i)=100-1(3) eos(pi/3);y3(i)=1(3)·sin(pi/3);
set(h3,"Xdata',x3(i),"Ydata',y3(i));
drawnow
end
title([ 当前时刻 ,num2str(t(i)),,s , (圆圈代表 甲,六角
星代表乙,五角星代表丙) ], Color , );
if(p(1)~----O&p(2)=2&p(3)= l I
p(1)一 1&p(2)— &p(3)一2 ⋯I
p(2)= l&xl(i)--50&yl(i)==50·sqrt(3)&x3(i)--O&y3(i)
==oI
xl(i)~ lOO&yl(i)~----0&
x2(i)~---O&y2(i)--O&
x3(i)~ lOO&y3(i)==O ⋯
Ixl(i)--50&yl(i)一50 sqrt(3)&
x2(i)==50&y2(i)--50 sqrt(3)&
x3(i)~----O&y3(i)---O ⋯
lp(2)一1&】【1(i)==o&y1(i)==0&】【3(i)一50&),3(i)一50·sqrt
(3))&
rem(t(i),50)---0
e(next)=t(i);
next=next+l;
end
pause(dO;
end
%一个周期内共边 的次数统计 。及相应的起止时刻.
nmbrs=l;nat--[];
mt(1)=e(1);%第一个周期内第一次共边的起始时刻.
for i=l:length(e)-I
if e(i+1) (i)>1
nmbrs=nmbrs+l;
rot=[mt c(i)e(i+1)];%第 i次共边终止时刻 c(i),第
i+1次共边起点时刻 e(i+1).
end
end
rot(2·nmbrs)=e(end);%第一个周期内最后一次共边 的终
止时刻.
mt
_ final=[];
fori=l:nmbrs
mLfinal=[rot_final;rot(2·i-1)rot(2·i)];
end
nmbrs %一个周期内共边的次数.
mt final %第一个周期内第一次至最后 一次共边 的起止
时刻.
程序 二的运行结果 为一个周期 内共边次数 为 nmbrs=
5。相应的共边 的起止时刻为 mr_final=1.Oe+O02·
0-37479166666667
0.499791 66666667
1.62479166666667
2.19979166666667
2.250《×××X×X}(×××} 2.2S 979166666667
从上面 的结果我们 不禁惊 叹于 maflab强大的数值计
算功能 :30、40、160、212.5和 225这五个值都为真实值而非
近似值。
3.讨论
对于引言 中提到的追逐问题 。我们建立了两个模型。模
型一给出了完整的解答 ,运动的周期性用得淋漓尽致 ,一个
周 期 内的共 边 的次 数和
起止 时刻 交待得 都很 清
楚。模型二表述简单 ,运
用初等 数论 知识 建立模
型 .能够较易地 推广到多
人 绕正 多边 形追逐 的情
形 :但模型二没 有明确 交
待 共边 的起 止时刻 和 没
有给 出相逢的判断 。即留
下了三个模糊 的东西 :一
是共边的起止 时刻 .二是
时段 [0,t]内共 边 的 次
数 .三是相逢前后都有共
边 。应算一 次共边 ,模 型
二却将其一分为二。虽然
这三 个 问题 都 可通 过计
算机程序给 以解决 。但 由
于计算机运算的近似性
起 止时刻 只是 近似 的数
字解。本文为引言中提到
的追逐 问题 所建 立 的两
追逐到第 13.5417s时刻的图像
追逐到第 30.5417s时刻的图像
个模型 ,都是一种理想化 的结果 ,即甲乙丙三人体质无差异
地绕正三角形做持续的匀速运动 ,没有考虑人 的生命特征 ,
所以理论上的结果将与实际情况有所不符。
Matlab语言具有极 强的数值计算功能和绘图功能.是
工程计算、系统仿真等领域具有广泛应用性的软件【l】。本文
没有用 maflab的仿真工具箱 simulink.也没有用动 画命令
getframe和 movie(这两个命令一般很难看到它们的使用方
法的介绍)t2a。
参考文献:
[1]薛定宇,陈阳泉.高等应用数学问题的matlab求解[M].北
京:清华大学出版社,2006.
[2]胡 良剑,孙晓君.matlab数学试验[M].北京:高等教育出版
社,2006,107_113.
. 123 .
维普资讯 http://www.cqvip.com
本文档为【3人绕三角形追逐问题的数学模型和matlab仿真】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。