狼兔问题的数学建模
数学建模之兔子问题(出稿)

数学建模一周论文论文题目:野兔生长问题姓名1:李宝川学号:09023320姓名2:彭亚学号:09023308姓名3:刘新斌学号:09023304专业:勘查技术与工程班级:090233指导教师:虞先玉老师2010年1月1日、摘要参照题目,野兔生长属自然范畴,在生存条件良好,且无外力干扰的情况下,其种群数量是呈对数型增长的。
题中可读,野兔生长并不是处于理想的情况下的,考虑到自然的各种原因,诸如,天地的捕杀,自然灾害,疾病等。
对于这种种群生态学问题,我们可以用Logistic(逻辑斯蒂方程)模型来模拟。
Logistic模型是种群生态学的核心理论之一。
它可以用来描述种群生长规律,利用它可以表征种群的数量动态。
之所以选择该模型来研究野兔生长问题,是因为,该模型考虑并概括了,种群发展所遇到的各种外界条件,也就是说,它模拟了真实情况。
通过建立Logistic模型,我们小组得出T=10时,野兔数量为9.84194(十万)只。
该结果比较符合客观规律。
利用Logistic模型可以表征种群的数量动态;如鱼类种群的增长,收获与时间关系的确定。
描述某一研究对象的增长过程如生态旅游区环境容量的确定,森林资源的管理以及耐用消费品社会拥有量的预测、国民生产总值的预测等;也可作为其它复杂模型的理论基础如Lotka-Volterra两种群竞争模型;以上的大多数的工作都是拿逻辑斯蒂模型来用,但也由此可看出逻辑斯蒂方程不管在自然科学领域还是在社会科学中都具有非常广泛的用途。
关键字:Logistic模型生态学 MATLAB程序问题重述野兔生长问题。
首先,野兔是生长在自然环境中的。
自然很复杂,存在着许多影响种群发展的因素。
我们知道,假如给野兔一个理想的环境,野兔数量是呈J型增长的。
现实情况中,种群一般是呈S型增长的,从题中表格看出,野兔的数量并不是单一地增长,T=3,6.90568;T=4,6.00512;T=5,5.56495;T=6,5.32807。
算法分析与设计狼找兔子

链表法的具体实现
#include <stdio.h> #include <stdlib.h> #include <windows.h> typedef struct shandong { int num; int state; struct shandong *next; }cave;
void createlist(cave *head,int n) {//创建链表并初始化, p->state =0代表狼未进山洞 cave *p,*q; int i; p=head; for(i=0;i<n-1;i++) { p->num=i; p->state=0; q=(cave *)malloc(sizeof(cave)); p->next=q; p=q; } p->num=n-1; p->state =0; p->next=head; }
公约数法
#include <stdio.h> int check(int n,int m) { int i,temp,k; k=m<n?m:n; for(i=1;i<=k;i++) { if(m%i==0&&n%i==0) { temp=i; } } return temp; }
void main() { int n,m,result; scanf("%d",&n); scanf("%d",&m); result=check(n,m); if(result==1) printf(“该兔子死定了!\n"); else printf(“有安全山洞!\n"); }
饿狼追兔问题数学建模

饿狼追兔问题数学建模数学建模饿狼追兔问题摘要本文研究饿狼追兔问题,是在给定狼兔相对位置,以及兔子巢穴位置的情况下求解的,狼的速度是兔子速度两倍,在不考虑其他任何因素的情况下研究狼能否追上兔子的问题。
首先,我们对问题进行了适当的分析,然后根据已知条件建立了狼的运动轨迹微分模型。
其次,根据建好的模型,运用MATLAB编程,然后仿真画出了饿狼和野兔的运动轨迹图。
再次,用解析方法将建立的模型求解,并给出该问题的结论,准确的回答题目。
最后,用数值方法求解,将所求与前面所求进行对比,也给出结论,回答题目。
并将两种方法做相应比较。
结论:野兔可以安全回巢关键词:算法高阶常微分方程§1.1问题的提出在自然界中,各种生物都有它的生活规律,它们钩心斗角,各项神通,在饿狼追野兔的工程中,饿狼的速度是野兔的二倍,但是野兔有自己的洞穴,野兔在跑到自己洞穴之前被狼捉住,野兔就将会成为饿狼的囊中之物;如果野兔在饿狼捉住自己之前跑回到自己的洞穴,那么野兔就保住小命,得以生还。
图1-1-1为饿狼追野兔的两条曲线,其中绿线表示野兔,图中的箭头表示的是野兔的奔跑方向,野兔从远点开始沿y轴正方向运动,其洞穴在坐标为(0,60)的位置;红线为饿狼的运动轨迹,,图中的剪头表示饿狼追逐野兔的方向,饿狼从坐标为(100,0)的方向追逐野兔,饿狼的速度是野兔速度的二倍。
建立数学模型需研究一下几个问题:(1)设野兔的速度我v0,饿狼的速度为v1,野兔的奔跑方向是沿y轴正方向奔跑,而饿狼的方向是一直指向野兔的方向,即饿狼的运动的轨迹某一时候的切线指向同一时刻的野兔的位置。
建立饿狼追野兔的运动轨迹微分模型。
(2)根据建立的饿狼运动轨迹得微分模型,作出饿狼与野兔的运动轨迹图形。
(3)用解析方法求解,即根据第二步作出的饿狼渔业突地运动轨迹图形,分析兔子能否安全回到巢穴,即野兔的运动曲线与饿狼的运动曲线的交点是在点(0,60)-野兔巢穴的上面还是下面。
C语言狼追兔子问题

C语言狼追兔子问题一只兔子躲进了10 个环形分布的洞的某一个,狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找,也没有找到,就隔两个洞,到第六个洞去找,以后每次多隔一个洞去找兔子……这样下去,结果一直找不到兔子,请问:兔子可能躲在哪个洞中?算法思想对于本实例中提到的问题,虽然是“兔子可能躲在哪个洞中”,但是在考虑算法时,需要知道的是狼会去哪个洞找兔子,狼第一次去的洞是第一个(表示为pos1),第二次去的是第三个(pos3),把它去的洞的代码用数字表示出来,可以推导出狼去的洞的代码是:pos(i+1)=pos(i)+i+1。
由题目可知,狼没有找到兔子,因此该算法会一直持续下去。
除此之外,还需要注意的是,在10 个洞之后,比如狼去找第十五个洞,但第十五个洞是不存在的,因此我们用15 对10 求余,得到的数字才是洞的标示。
程序代码1.#include<stdio.h>2.int main()3.{4.int i;5.bool pos[10]={0};6.int lang=0;7.for(i=0;i<100;i++)8.{9. pos[lang]=true;10. lang++;11. lang+=i;12. lang=lang%10;13.}14.for(i=0;i<10;i++)15.if(!pos[i])16.printf("兔子可能在第%d洞中\n",i+1);17.return0;18.}调试运行结果通过上面的算法分析,狼在找兔子的过程中,为了达到找到兔子的目的,同时为了设计需要,增加了循环次数,最终程序的结果如下所示:。
数学建模例题题

数学建模试题一、传染病模型医学科学的发展已经能够有效地预防和控制许多传染病,但是仍然有一些传染病暴发或流行,危害人们的健康和生命。
社会、经济、文化、风俗习惯等因素都会影响传染病的传播,而最直接的因素是:传染者的数量及其在人群中的分布、被传染者的数量、传播形式、传播能力、免疫能力等。
一般把传染病流行范围内的人群分成三类:S类,易感者(Susceptible),指未得病者,但缺乏免疫能力,与感染者接触后容易受到感染;I类,感病者(Infective),指染上传染病的人,它可以传播给S类成员;R类,移出者(Removal),指被隔离或因病愈而具有免疫力的人。
要求:请建立传染病模型,并分析被传染的人数与哪些因素有关?如何预报传染病高潮的到来?为什么同一地区一种传染病每次流行时,被传染的人数大致不变?二、线性规划模型—销售计划问题某商店拟制定某种商品7—12月的进货、售货计划,已知商店仓库最大容量为1500件,6月底已存货300件,年底的库存以不少于300件为宜,以后每月初进货一次,假设各月份该商品买进、售出单价如下表。
要求:若每件每月的库存费用为0.5元,问各月进货、售货各为多少件,才能使净收益最多?建立数学模型,并用软件求解。
【注】线性规划在MATLAB的库函数为:linprog。
语法为:x = linprog(f,A,b)x = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)[x,fval,exitflag,output,lambda] = linprog(...)例如:线性规划目标函数的系数:f = [-5; -4; -6]约束方程的系数及右端项:A = [1 -1 13 2 43 2 0];b = [20; 42; 30];lb = zeros(3,1);调用线性规划程序linprog求解,得:[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);x= 0.000015.00003.0000三、一阶常微分方程模型—人口模型与预测 下表列出了中国1982-1998年的人口统计数据,取1982年为起始年(0=t ),1016540=N 万人,200000=m N 万人。
数学模型--狼追击兔子的问题

数学模型--狼追击兔子的问题一、问题重述与分析(一)问题描述神秘的大自然里,处处暗藏杀机,捕猎和逃生对动物的生存起着至关重要的作用,而奔跑速度和路线是能否追上和逃生的关键因素。
狼追击兔子问题是欧洲文艺复兴时代的著名人物达•芬奇提出的一个数学问题。
当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼出现在兔子正东的100码处。
当两只动物同时发现对方以后,兔子奔向自己的洞穴,狼以快于兔子一倍的速度紧追兔子不放。
狼在追赶过程中所形成的轨迹就是追击曲线。
狼是否会在兔子跑回洞穴之前追赶上兔子?为了研究狼是否能够追上兔子,可以先考虑求出狼追兔子形成的追击曲线,然后根据曲线来确定狼是否能够追上兔子。
(二)问题分析1、本题目是在限定条件下求极值的问题,可以通过建立有约束条件的微分方程加以模拟。
2、通过运用欧拉公式及改进欧拉公式的原理,结合高等数学的有关知识,对微分方程进行求解。
3、将数学求解用Matlab程序语言进行实现得出方程的近似解。
4、最后解方程的解结合实际问题转化为具体问题的实际结果。
二、变量说明V1 :兔子的速度(单位:码/秒)r :狼与兔子速度的倍数;V2:狼的速度(单位:码/秒),显然有v rv it:狼追击兔子的时刻(t=0时,表示狼开始追兔子的时刻)◎:在时刻t,兔子跑过的路程(单位:码),$ s(t)S2 :在时刻t,狼跑过的路程(单位:码),S2 S2(t)Q(x i,yj :表示在时刻t时,兔子的坐标P(x,y):表示在时刻t时,狼子的坐标三、模型假设1、狼在追击过程中始终朝向兔子;2、狼追击兔子的轨迹看作是一条光滑的曲线,即将动点P(x, y)的轨迹看作一条曲线,曲线方程表示为y y(x)。
3、当猎狗与兔子之间的距离相当小时认为猎狗已经追上了兔子。
四、模型建立(一)建模准备以t = 0时,兔子的位置作为直角坐标原点,兔子朝向狼的方向为x轴正向;则显然有兔子位置的横坐标x i 0。
对狼来说,当x = 100 , y= 0,即y x 1000在t = 0刚开始追击时,狼的奔跑方向朝向兔子,此时即x轴负方向, 则有y xi00 0(二)建立模型1、追击方向的讨论由于狼始终朝向兔子,则在狼所在位置P(x,y)点过狼的轨迹处的切线方向在y轴上的截距为y i。
2022-2022数学建模题

2022-2022数学建模题数学建模试题一、传染病模型医学科学的发展已经能够有效地预防和控制许多传染病,但是仍然有一些传染病暴发或流行,危害人们的健康和生命。
社会、经济、文化、风俗习惯等因素都会影响传染病的传播,而最直接的因素是:传染者的数量及其在人群中的分布、被传染者的数量、传播形式、传播能力、免疫能力等。
一般把传染病流行范围内的人群分成三类:S类,易感者(Suceptible),指未得病者,但缺乏免疫能力,与感染者接触后容易受到感染;I类,感病者(Infective),指染上传染病的人,它可以传播给S类成员;R类,移出者(Removal),指被隔离或因病愈而具有免疫力的人。
要求:请建立传染病模型,并分析被传染的人数与哪些因素有关?如何预报传染病高潮的到来为什么同一地区一种传染病每次流行时,被传染的人数大致不变?二、一阶常微分方程模型—人口模型与预测下表列出了中国1982-1998年的人口统计数据,取1982年为起始年(t0),N0101654万人,Nm200000万人。
198219831984198519861987198819891990年人口101654103008104357105851107507109300111026112704114333(万)19911992199319941995199619971998年人口115823117171118517119850121121122389123626124810(万)要求:(1)建立中国人口的指数增长模型,并用该模型进行预测,与实际人口数据进行比较。
(2)建立中国人口的Logitic模型,并用该模型进行预测,与实际人口数据进行比较。
(3)利用MATLAB图形,标出中国人口的实际统计数据,并画出两种模型的预测曲线。
(4)利用MATLAB图形,画出两种预测模型的误差比较图,并分别标出其误差。
【注】常微分方程一阶初值问题的MATLAB库函数为:ode45。
pascal狼追兔子

题目二:狼追兔子:
需求分析:将问题循序渐进地变成程序,需要用到数组求余法
问题提出:本人需要用到一维数组,for循环结构求余求算该问题所涉及的知识点:一维数组,FOR循环
接替方法:将问题循序渐进地变成程序。
1、画图分析。
(在草稿本上进行)
2、确定解题思路;(在草稿本上进行)
1)用一个数组a[11],对应的元素a[1],a[2],a[3]……对应表示10个洞,初值均置1。
2)找兔子,题意是一直找不到,不可能找无限次,但找的次数肯定很多,设找1000次,用一循环按规则找。
但要注意,洞只有10个,找的过程中,第n次查找对应第n%10个洞,由于在第n%10个洞中没有找到兔子,因此将a[n%10]置0值。
3)循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。
3、写出算法或画出流程图(或N-S图)。
(在草稿本上进行)
编码、调试。
(先在草稿本上写程序草稿,再上机调试通过,然后将正确的程序记录在本子上)
编译过程:
#include<stdio.h>
void main()
int a=0,i=0,x=0;
int b[11];
for(i=0;i<11;i++)
b[i]=1;
for(i=0;i<1000;i++)
a+=(i+1);
x=a%10;
b[x]=0;
for(i=0;i<10;i++)
if(b[i])
printf("可能在第%d个洞\n",i);。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
狼追兔子的问题
摘要:
数学建模可以使抽象的问题用数学符号和语言清楚的表达出来。
针对此题是高阶常微分方程问题。
此例问题虽然问法多样,但解法基本一致,这道题狼和兔子在运动过程中属微分方程模型与一阶常微分方程。
狼追兔子问题来源很久,早在几百年前就有人在研究他,由于数学的发展水平不是很高和软件的局限,所以没有研究透彻。
如今随着数学学科的发展和应用软件的飞速发展,对于这个的研究已进入新阶段。
由于狼要盯着兔子追,所以狼行走的是一条曲线,且在同一时刻,曲线上狼的位置与兔子的位置的连线为曲线上该点处的切线。
建立二者的运动微分方程,计算它们的运动轨迹,用软件MATLAB求解微分方程模型。
计算出兔子是否安全回到自己的巢穴。
1.1.1 问题的来源及意义:
(一) 问题重述与分析: 现有一只兔子,一只狼,兔子位于狼的正西100米处。
假设兔子与狼同时发现对方并一起起跑,兔子往正北60米处的巢穴跑,而狼在追兔子,已知兔子、狼是匀速跑且狼的速度是兔子的两倍。
问题是兔子能否安全回到巢穴
(二)题起源于导弹跟踪问题,与狼追兔子问题在解决方法上是大致一样的。
导弹跟踪的研究对于再军事上有很重要的意义。
将导弹跟踪问题能简化为狼追兔子问题,都是高阶常微分方程模型,要涉及常微分方程,学会在实际问题中运用数学方法建模和求解。
1.1.2问题的分析:
饿狼追兔问题一阶微分方程初值问题数值解。
兔子它的洞在距离它现在吃草处正北方的60米处,在兔子的正东面100米处有一头饿狼正潜伏着观察兔子多时了兔子发现了狼的存在.兔子拼命的沿直线向洞逃跑,兔子知道不赶快进洞命休已,狼和兔子同时启动并且死死盯着兔子扑去.兔子跑的虽然快,但狼的速度是兔子速度的2倍.假如兔子和狼都匀速运动. 为了研究狼是否能够追上兔
子,可以先考虑求出狼追兔子形成的追击曲线,然后根据曲线来确定狼是否能够追上兔子。
1.1.3 模型假设:
狼在追击过程中始终朝向兔子;
狼追击兔子的轨迹看作是一条光滑的曲线,即将动点P ),(y x 的轨迹看作一条曲线,曲线方程表示为)(x y y =。
1.1.4 模型建立:
(一)问题分析:1. 以t =0时,兔子的位置作为直角坐标原点,兔子朝向狼的方向为
x 轴正向;则显然有兔子位置的横坐标01=x 。
2. 对狼来说,当x =100,y =0,即
100==x y
在t =0刚开始追击时,狼的奔跑方向朝向兔子,此时即x 轴负方向, 则有
100='=x y
图1 兔子与狼的运动轨迹
x
h A(100,0)
O
(二) 建立模型:
1变量说明
1v :兔子的速度(单位:码/秒) r :狼与兔子速度的倍数;
2v :狼的速度(单位:码/秒),显然有12rv v =
t :狼追击兔子的时刻(t=0时,表示狼开始追兔子的时刻)
1s :在时刻t ,兔子跑过的路程,)(11t s s =
2s :在时刻t ,狼跑过的路程,)(22t s s =
1、追击方向的讨论
由于狼始终朝向兔子,则在狼所在位置P ),(y x 点过狼的轨迹处的切线方向在距y 轴上的截为1y 。
设切线上的动点坐标为(X ,Y ),则切线方程为
)(x X y y Y -'=-
(1)
在(1)中,令X =0,则截距x y y Y '-=。
此时t v y 11=。
则此时截距等于兔子所跑过的路程,即:
1y Y =,
从而可得
x y y y Y '-==1
(2)
2、 狼与兔子速度关系的建模
在t 时刻,兔子跑过的路程为
t v y s 111== (3)
由于狼的速度是兔子的r 倍,则狼跑的路程为
112ry rs s == (4)
狼跑过的路程可以用对弧长的曲线积分知识得到,如下。
dx y s x
⎰
'+=100221 (5)
联立(2)、(4)、(5)得
)(11100
2x y y r ry dx y x
'-=='+⎰
(6)
对(6)两边求对x 的导数,化简得
rx
y y 2
1'+='' (7)
微分方程(7)式的初始条件有:
0100==x y 0100='=x y
3、
是否追上的判断
要判定狼是否追上兔子,可以通过(7)式判定。
对(7)式,
当x =0,如果计算求解得到60≥y ,则视为没有追上;
当x =0,如果计算求解得到60<y ,则视为兔子被追上;
模型求解:
运用Matlab 求解:
由微分方程得到其Matlab 函数
function yy=odefunlt(x,y)
%以狼在追击过程中的横坐标为自变量
yy(1,1)=y(2);
yy(2,1)=sqrt(1+y(2).^2)./(2.*x);
主程序:
tspan=100::;
y0=[0 0];
[T,Y] = ode45('odefunlt',tspan,y0);
n=size(Y,1);
disp('狼的坐标(x=')
disp(Y(n,1))
1.1.5 模型结果与分析:
运行结果:
狼的坐标(x=
通过上面运行结果可知,狼并没有追上兔子.
1.1.6 参考文献:
微分方程模型见:数学模型引论(第二版)高等教育出版社【书号】45 作者:唐焕问赫明峰
E. A. Bender, 数学模型引论,朱尧辰、徐伟宣译,科学普及出版社,1982.
南京地区工科院校数学建模与工业数学讨论班编,数学建模与实验,河海大学出版社,1996 557790 数学模型引论2006-06-16 高等教育出版社。