数学建模实验项目八 狐狸与野兔问题
matlab数学实验练习题
Matlab 数学实验实验一 插值与拟合实验内容:预备知识:编制计算拉格朗日插值的M 文件。
1. 选择一些函数,在n 个节点上(n 不要太大,如5 ~ 11)用拉格朗日、分段线性、三次样条三种插值方法,计算m 个插值点的函数值(m 要适中,如50~100)。
通过数值和图形输出,将三种插值结果与精确值进行比较。
适当增加n ,再做比较,由此作初步分析。
下列函数任选一种。
(1)、 ;20,sin π≤≤=x x y (2)、;11,)1(2/12≤≤--=x x y (3)、;22,c o s10≤≤-=x x y(4)、22),exp(2≤≤--=x x y2.用电压V=10伏的电池给电容器充电,电容器上t 时刻的电压为)(0)()(t eV V V t v ---=,其中0V 是电容器的初始电压,τ是充电常数。
试由下面一组t ,V 数据确定0V 和τ。
实验二 常微分方程数值解试验实验目的:1. 用MATLAB 软件求解微分方程,掌握Euler 方法和龙格-库塔方法;2. 掌握用微分方程模型解决简化的实际问题。
实验内容:实验三地图问题1.下图是一个国家的地图,为了计算出它的国土面积,首先对地图作如下测量:以由西向东方向为x轴,由南到北方向为y轴,选择方便的原点,并将从最西边界点到最东边界点在x轴上的区间适当地划分为若干段,在每个分点的y方向测出南边界点和北边界点的y坐标y1和y2,这样就得到了表中的数据(单位mm)。
根据地图的比例我们知道18mm相当于40km,试由测量数据计算该国土的近似面积,并与它的精确值41288km2比较。
实验四狼追兔问题狼猎兔问题是欧洲文艺复兴时代的著名人物达.芬奇提出的一个数学问题。
当一个兔子正在它的洞穴南面60码处觅食时,一只恶狼出现在兔子正东的100码处。
当两只动物同时发现对方以后,兔子奔向自己的洞穴,狼以快于兔子一倍的速度紧追兔子不放。
狼在追赶过程中所形成的轨迹就是追击曲线。
综合实验一 狐狸逮兔子
综合实验一狐狸逮兔子实验
(一)问题描述
围绕着山顶有10个圆形排列的洞,互利要吃兔子,兔子说:”可以,但必须找到我,我就藏于这10个洞中,你先到1号洞找,第二次隔1个洞(即3号洞)找,第二次隔2个洞(即6号洞)找,以后如此类推,次数不限.”但狐狸从早到晚进进出出了1000次,仍没有找到兔子.问:兔子究竟藏在那个洞里?
(二)问题分析
这实际上是一个反复查找线性表的过程.
定义一个顺序表,用具有10个元素的顺序表来表示这10个洞.每个元素表示围绕山顶的一个洞,下标为洞的编号.对所有洞设置初始标志为1,然后通过1000次循环,对每次所进之洞修改标志为0,最后输出标志为1的洞,即兔子藏身的洞.
(三)问题要求
1.构造一个顺序表存储山洞,元素的下标表示山洞的编号,元素的值为1表示狐狸没有进过山洞,为0表示狐狸进过该山洞.
2.为保持程序的通用性,山洞的数目和狐狸进出山洞的次数不一定为题设的10和1000,可由用户从键盘输入.
3.要求编写函数模拟狐狸逮兔子的过程,并输出兔子可能的藏身之处.。
狐狸抓兔子问题
2
10
4
输出示例
2 4 7 9
no safe caves
#include "stdio.h"
void main()
{
int n,i,k=0;
int a[100]={0};
printf("请输入洞的数目:\n");
scanf("%d",&n);
for(i=1;i<=1000;i++)
{
k=(k+i)%n;//循环从1号洞开始,以n个洞为周期去遍历
题目:有没有安全的洞
大家都知道狐狸很狡猾,但是狐狸想要抓到兔子也没有那么容易,因为它也有“狡兔三窟”的名声。下面就让我们来看看这场狐狸与兔子的角逐吧!
在某个山上有n个洞,住着一直狐狸和兔子,这n个洞呈圆形排列,分布在山的周围,每个洞之间有一定的距离,狐狸总是想去捉吃兔子。有一天,兔子远远地看见了狐狸,便对狐狸说:“这样吧,我们玩个游戏,把n个洞一次编成1至n号,你住的洞编号n号洞,我藏在另外的某个洞里。你从自己的洞出发,沿着一个方向走,第一次走一个间隔(相邻的两洞间为一个间隔),进入1号洞寻找我,第二次走2个间隔,进入3号洞寻找我,依次类推,次数不限,如果我被你找到了,我就甘愿成为你的美餐,如何?狐狸心理想,不限次数,只要我努力找,总可以找到小白兔的。结果狐狸找呀找呀,找了三天三夜也没有找到小白兔。请你帮小白兔一个忙,如果给定洞的个数n,它应该躲在哪些洞里才是永远安全的。
a[k]=1;
if(k==0) //被整除的时候表示刚好到达n洞
a[n]=1;
}
for(i=1;i<=n;i++)
{
数学建模_野兔生长问题[1]
数学建模一周论文野兔生长问题姓名1:学号:姓名2:学号:姓名3:学号:专业:班级:指导教师:2009年1月4日摘要:通过观察表格中野兔在连续九年的数量,利用所学数学知识分析得出野兔的生长规律,从而预测出第十年野兔的数量。
分析了野兔种群数量的统计结果,假设野兔在十年内生长环境变化稳定,但是数据显示这是不可能的,因为在两个数据点处出现了异常的增长现象。
在异常的自然条件下野兔的生长状况是不符合正常的生长律的。
因此我们先排除这两个异点,并试图揭示剩下的几组数据兔种群数量变化的规律。
模型里所给出的主要微分方程中有两个参数需要给出。
在给参数的过程中我们发现某些量值之间存在着线性函数关系式,利用计算机我求出了线性比例因子从而确定了所给出的参数。
在模型求解过程中,我们发现,对 logistic 模型赋予不同的参数会导模型的解在一定程度上的变化。
于是我们想知道参数在一定范围内的改变到底对解函数产生多大的影响?这个问题的探讨实际上是对解的可靠性的探讨,对题本身有较强的实践意义。
我们最终把这个问题归结为含参数的初值问题的微方程对初值的依赖性与对参数的依赖性问题。
在对问题的探讨中,我们避免了纯粹的数学理论,而是利用计算机给出模型的解函数在不同的初值条件下、不同参数下的表现,并利用Matlab绘制成图像,直观且清晰地反映出模型的解函数对参数与初值不同选取的表现。
在解决这个问题的途中,我们还利用到了计算方法课程所学到的知识,通过观察数据,利用插值法描出图像,近似得出函数,再得出第十年的野兔数量。
野兔生长模型1、问题重述这是一个关于野兔生长状态的模型。
我们知道研究一定空间内某一生物物种的种群数量随时间变化的规律是很有实践意义的。
通过发现规律,我们可以更有效的了解一个种群发展变化的趋势、种群对自然世界的依赖程度和种群自身的成长结构,对人类了解并掌握自然规律,利用与控制生物资源有较大意义。
人类自身作为地球上的一个物种,也在不断的探求自己的命运。
狐狸与兔子数学模型的论文
狐狸与野兔(捕食者与被捕食者)问题摘要在生态系统中,捕食与被捕食的关系无处不在,它们相互依存,相互制约,在自然选择的条件下,只要经过足够长的时间,物种的数量关系就会达到动态的平衡,而这种平衡与初始状态下各物种的数量无关。
本文研究的是狐狸与野兔两个物种的关系,题目中已经给出了两个物种的变化率之间的关系,直接解出即可看出狐狸与野兔两个物种的数量关系,但已知的微分方程组不能直接解出解析解,因此,我们用“组合的2/3阶龙格-库塔-芬尔格算法”求给定微分方程的数值解,在给出初值:狐狸300只,野兔800只的情况下,用MATLAB 软件进行计算,然后通过狐狸和野兔数量的图像确定狐狸和野兔的数量关系:狐狸的数量随着野兔数量的增加而增加,而野兔的数量又随着狐狸的增加而减少,经过自然界的反馈作用,狐狸的数量又随着野兔数量的减少而减少,进一步,野兔的数量又会随着狐狸的减少而增加,它们的关系就这样循环,最后直至平衡,达到稳定状态。
在平衡状态下,狐狸和野兔的数量保持不变,因而它们的变化率应该为0,所以直接令微分方程等于0,解得平衡状态下:狐狸200只,野兔900只。
在没有人类捕猎的条件下,野兔数量的变化率为xy x dtdx 02.04-=,可见狐狸对野兔的捕捉量与狐狸和野兔的数量乘积成正比,比例系数为0.02。
同理,如果考虑人类对野兔的捕猎,可假设“人类对野兔的捕捉量与人类和野兔的数量乘积成正比,比例系数为a ”,在这种情况下,达到平衡时野兔的数量没有变化,狐狸的数量有所减少。
根据以上思路,如果考虑人类对狐狸进行捕猎,可假设“人类对狐狸的捕捉量与人类和狐狸的数量乘积成正比,比例系数为b ”,在这种情况下,达到平衡时狐狸的数量没有变化,野兔的数量有所增加。
关键词:组合的2/3阶龙格-库塔-芬尔格算法 滞后 反馈作用 MATLAB 自然平衡一、问题重述在一个封闭的大草原里生长着狐狸和野兔。
在大自然的和谐的坏境中,野免并没有因为有狐狸的捕食而灭绝。
数学建模暑期培训课件(陈传军)matlab
烟台大学数学建模暑期培训陈传军2010.7.12第一部分MATLAB 入门1.MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题. 2.MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。
3.矩阵是MA TLAB的核心4.MATLAB的进入与运行方式(两种)一、变量与函数1、变量————不需要定义MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.特殊变量表2、数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果. (2)“%” 后面所有文字为注释.(3)“...”表示续行.点乘:矩阵与矩阵,向量与向量。
3、数学函数二、数组与矩阵1. 数组1、创建简单的数组x=[a b c d e f ]创建包含指定元素的行向量x=first:last创建从first开始,加1计数,到last结束的行向量x=first:increment:last创建从first开始,加increment计数,last结束的行向量x=linspace(first,last,n)创建从first开始,到last结束,有n个元素的行向量x=logspace(first,last,n)创建从first开始,到last结束,有n个元素的对数分隔行向量.2、数组元素的访问(1)访问一个元素:x(i)表示访问数组x的第i个元素.(2)访问一块元素:x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.(3)直接使用元素编址序号. x([a b c d]) 表示提取数组x的第a、b、c、d个元素构成一个新的数组[x(a) x(b) x(c) x(d)].3、数组的方向前面例子中的数组都是一行数列,是行方向分布的. 称之为行向量. 数组也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是结果以列形式显示.产生列向量有两种方法:直接产生例c=[1;2;3;4]转置产生例b=[1 2 3 4]; c=b‟说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素.4、数组的运算(1)标量-数组运算数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算.设:a=[a1,a2,…,an], c=标量则:a+c=[a1+c,a2+c,…,an+c]a.*c=[a1*c,a2*c,…,an*c]a./c= [a1/c,a2/c,…,an/c](右除)a.\c= [c/a1,c/a2,…,c/an] (左除)a.^c= [a1^c,a2^c,…,an^c]c.^a= [c^a1,c^a2,…,c^an]当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.设:a=[a1,a2,…,an], b=[b1,b2,…,bn]则:a+b= [a1+b1,a2+b2,…,an+bn]a.*b= [a1*b1,a2*b2,…,an*bn]a./b= [a1/b1,a2/b2,…,an/bn]a.\b=[b1/a1,b2/a2,…,bn/an]a.^b=[a1^b1,a2^b2,…,an^bn]2. 矩阵1、矩阵的建立逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列.例m=[1 2 3 4 ;5 6 7 8;9 10 11 12]p=[1 1 1 12 2 2 23 3 3 3]特殊矩阵的建立:a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零.b=zeros(m,n) 产生一个m行、n列的零矩阵c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵d=eye(m,n) 产生一个m行、n列的单位矩阵2、矩阵中元素的操作(1)矩阵A的第r行:A(r,:)(2)矩阵A的第r列:A(:,r)(3)依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:)(4)取矩阵A的第i1~i2行、第j1~j2列构成新矩阵:A(i1:i2, j1:j2)(5)以逆序提取矩阵A的第i1~i2行,构成新矩阵:A(i2:-1:i1,:)(6)以逆序提取矩阵A的第j1~j2列,构成新矩阵:A(:, j2:-1:j1)(7)删除A的第i1~i2行,构成新矩阵:A(i1:i2,:)=[ ](8)删除A的第j1~j2列,构成新矩阵:A(:,j1:j2)=[ ](9)将矩阵A和B拼接成新矩阵:[A B];[A;B]3、矩阵的运算同标量-数组运算。
大学奥数之狐狸吃草问题(含答案)
大学奥数之狐狸吃草问题(含答案)大学奥数之狐狸吃草问题答案
问题描述
在大学奥数竞赛中,有一道关于狐狸吃草的问题,现在我们来解答这个问题。
解答
假设有一片长为 *N* 厘米的草地。
我们有一只狐狸,它每次可以吃掉草地上 *A* 厘米的长度。
另外,有一只兔子,它每次可以吃掉草地上 *B* 厘米的长度。
问题是,经过多少轮之后,狐狸会吃掉兔子?
简洁解决方案
我们可以通过计算狐狸和兔子每次吃掉的草地长度,来确定狐狸吃掉兔子所需的轮数。
假设狐狸和兔子每轮吃掉的长度分别为 *x* 厘米和 *y* 厘米,则有以下公式:
x = A
y = B
我们需要找到满足以下不等式的最小正整数 *n*:
x * n > y * n
即:
A * n >
B * n
解上述不等式,得到:
n > 0 when A > B
因此,只要狐狸每次吃掉的长度大于兔子每次吃掉的长度,那么经过一轮之后,狐狸就会吃掉兔子。
总结
根据我们的解答,只要狐狸每次吃掉的长度大于兔子每次吃掉的长度,狐狸就会在经过一轮后吃掉兔子。
这是一个简单的问题,但需要注意计算和比较吃掉的草地长度。
请注意,这个答案仅仅是一个模拟的解决方案,实际情况可能有所不同。
数学建模--野兔
数学建模--野兔数学建模2辽宁工程技术大学数学建模课程成绩评定表学期2014-2015学年1学期姓名高显利李浩申李金胜专业工程管理班级14-工中职一班课程名称数学建模论文题目航空机票超订票问题评定标准评定指标分值得分知识创新性20理论正确性20内容难易性15结合实际性10知识掌握程度15书写规范性10工作量10总成绩100评语:任课教师林清水时间2015年11月15日备注摘要当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言,把它表述为数学式子,也就是数学模型,然后用通过计算得到的模型结果来解释实际问题,并接受实际的检验。
这个建立数学模型的全过程就称为数学建模。
关键词种群繁殖野兔数学建模稳定收获异常现象 Logistic模型生态学 MATLAB程序根据题目:在某地区野兔数量在连续十年统计数量(单位十万)如下:分析该数据,得出野兔的生长规律。
并指出在哪些年内野兔的增长有异常现象。
对于这种种群生态学问题,我们可以用Logistic(逻辑斯蒂方程)模型来模拟。
Logistic 模型是种群生态学的核心理论之一。
它可以用来描述种群生长规律,利用它可以表征种群的数量动态。
之所以选择该模型来研究野兔生长问题,是因为,该模型考虑并概括了,种群发展所遇到的各种外界条件,也就是说,它模拟了真实情况。
通过建立Logistic模型,我们小组得出T=10时,野兔数量为9.84194(十万)只。
该结果比较符合客观规律。
利用Logistic模型可以表征种群的数量动态;如鱼类种群的增长,收获与时间关系的确定。
实习目的学会用logistic模型来表达,用logistic模型来表达增长性问题。
问题重述1、兔子的自然死亡。
2、兔子天敌的种群变化。
3、各种疾病的蔓延。
4、人类的捕杀与破坏问题剖析野兔生长问题。
野兔在自然条件不变下,野兔的种群应该保持不变。
数学建模论文野兔生长问题
野兔生长问题摘要本文根据已知的野兔连续十年的统计情况,探讨野兔的合理的存活率并推测当前的发展趋势,针对不同情况给出方法推算出野兔数量的走向的目的。
首先,充分利用给出的前两年来野兔的数量变化,分析近两年来的野兔群落的情况,建立一个线性方程组的数学模型,通过求解方程组得出不同年份野兔的数量的数学关系,并且求出了平均增长率为:1.718%;所以通过一些比例之间的关系得到这个野兔群落的T=10的数量(见表1)。
然后,建立一个种群增长的差分方程模型,求出的野兔生长规律。
求解当前野兔对应的Leslie矩阵的特征根,发现该特征根大于1,根据Leslie矩阵的稳定性理论知道:如果不进行避孕注射该野兔种群将无限增长(如果环境允许);据此,利用Leslie矩阵稳定的充要条件求出应该保持多大的繁殖率才能使种群保持稳定,求解的主要思路是:特征根取为1、把繁殖率当成未知数,将此时的各年龄段的存活率代入方程⑥即可。
最后,只需将野兔的存活率代入那个以繁殖率为未知数的方程(方程⑥),求出在哪些年内野兔的增长有异常现象,。
考虑到求解的数据比较多,采取计算机模拟的方法来确定移走野兔后所需要进行避孕的母兔头数为了检验计算机模拟的正确性,用理论去验证。
问题重述位于某国的国家公园中栖息着近10000头野兔。
管理者要求有一个健康自由的环境以便观察这个10000头野兔的数量变化情况。
管理者逐年统计了野兔的数量,发现在过去的10年中,野兔的生长变化并不稳定,呈现波浪式起伏,根据这些信息我们需要解决以下问题:1. 探讨年龄在1岁到10岁之间的野兔的合理的存活率的模型,推测这个野兔群落的当前的年龄结构。
2. 知道哪些环境和内部因素对野兔生长数量的影响,并测算出各个影响的程度如何。
3. 探求偶然突发事件对野兔生长数量的巨大影响和它的规律性。
4. 根据野兔的生长变化,对野兔的生长特点进行分析。
问题假设1、假设野兔的性别比近似认为1:1,并且采用措施维持这个性别比;2、假设母兔可以怀孕的年龄为1岁—6岁、最高年龄为10岁,10岁的死亡率为100%,并且6—10岁的野兔的只数呈线性递减;3、假设野兔在各年龄段中的分布率不变,即年龄结构不变,并采用各种措施维持这一结构;4、假设兔子的内部因素对其生存率的影响不大5、假设0岁野兔能够活到1岁的比例为75%;6、假设各个环境因素对野兔生长的影响是互不影响的。
数学建模野兔生长问题完整论文[1]
东华理工大学数学建模一周论文论文题目:野兔生长问题姓名1:学号:姓名2:学号:姓名3:学号:专业:班级:指导教师:乐励华年月日摘要参照题目,野兔生长属自然范畴,在生存条件良好,且无外力干扰的情况下,其种群数量是呈对数型增长的。
题中可读,野兔生长并不是处于理想的情况下的,考虑到自然的各种原因,诸如,天地的捕杀,自然灾害,疾病等。
对于这种种群生态学问题,我们可以用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。
第四年到第七年,这三年野兔的数量不增反降,说明其间有影响野兔生长的因素存在。
我们探讨了其中的因素:(1),兔子内部因素,竞争,雄雌比利失去平衡,老化严重等。
狐狸追及横向跑的兔子的问题
兔子沿着直线以6米每秒的速度跑。
狐狸在兔子的垂直方向30米外。
以8米每秒的速度始终朝着兔子的方向追赶。
问狐狸何时能够追上兔子?这是一个被称为“狗追兔子曲线”的经典问题,乍一看是需要建立微分方程求解的,但既然是经典问题,自然有经典解法。
第一种解法:源自华罗庚在《高等数学引论》第一卷第二分册第14章第8节“追踪问题”(p137-138)中所做。
其中给出了一个一般性的追击者与被追击者速度与方向的微分方程关系式,楼主的问题条件比较特别,如果在坐标系上表示就是兔子是从原点开始沿着Y轴奔逃,而狐狸的起点的位置是(30,0),根据这种特定情况套入公式,这个特例在书中也有特别阐述,推导得出的公式是:(VcosΦ+U)R=(V2-U2)t+aV;这里,V 是狐狸的速度,U是兔子的速度,a是初始距离,也就是本题的30米,R是狐狸和兔之间的距离(当狐狸追上兔子时R=0),t是追击所需的时间。
据此进一步推导可得t=aV/(V^2-U^2)兔子奔逃的距离s=aVU/ (V^2-U^2)狐狸追击的距离S=aV^2/(V^2-U^2)代入本题数据可得:t=30*8/(8^2-6^2)=240/(64-36)=240/28=60/7,即追上的时间是“八又七分之四”秒,约等于8.57秒。
追上时兔子跑的距离是(360/7)米,狐狸跑过的距离是(480/7)米。
第二种解法:源自美国著名趣味数学大师萨姆•劳埃德的《萨姆•劳埃德的数学趣题续编28题》。
这是一个极其巧妙的初等解答,甚至学过简单追击问题的小学生都可以用来计算出正确答案。
萨姆•劳埃德认为狐狸追兔子的过程是是两个运动过程的合成:一个是同向追及问题,一个是相对相遇问题。
同向追击问题,就是狐狸和兔子都沿着同一方向跑,兔子在狐狸前方a米外,兔子速度u,狐狸速度v,这个问题非常简单,追上的时间就是距离除以速度差,即t1=a/(v-u );相对相遇问题,就是兔子和狐狸相距a米沿直线相向奔跑(狐狸爱上兔子正常,兔子自投罗网?残念),兔子速度u,狐狸速度v,相遇的时间就是距离除以速度和,即t2=a/(v+u) ;那么狐狸曲线追击兔子的时间是什么呢?竟然是上面两个时间的平均值!!(震惊吧?这就是说为啥学过追击问题的小学生都能做的原因)。
狐狸捉兔子问题
狐狸捉兔⼦问题1. 问题描述围绕着⼭顶有10个洞,狐狸想要吃兔⼦,兔⼦说:“可以,但必须找到我,我就藏⾝于这10个洞中,你从10号洞出发,先到1号洞找,第⼆次隔1个洞找,第三次隔2个洞找,以后如此类推,次数不限。
”但狐狸从早到晚进进出出了1000次,仍没有找到兔⼦。
问兔⼦究竟藏在哪个洞⾥?2. 问题分析(1) 把10个洞编上序号:1,2,3,4,5,6,7,8,9,0(2) 狐狸从0号洞出发,第1次在1号洞找;第2次隔1个洞,在3号洞找;第3次隔2个洞,在6号洞找;第4次隔3个洞,在0号洞找;第5次隔4个洞⼝,即在5号洞找;以此类推。
(3) 可见,其实上述问题其实是⼀个等差数列求和问题(⾸项为1,公差为1)。
将求和结果对10取余(求和结果%10),即可得到狐狸每次进去的洞⼝号。
(4) 如下图所⽰,仔细观察可以发现,如果狐狸连续两次都进⼊出发洞⼝(0号洞),表明接下来进⼊洞⼝的顺序与之前的顺序相同!因此遇到连续两次都进⼊出发洞⼝的情况,即可停⽌寻找,因为接下来只是重复之前找过的洞⼝。
3. 算法描述(1) ⾸项为1,公差为1的等差数列求和公式:n*(n+1)/2,n为寻找的次数(2) 狐狸每次进⼊的洞⼝号为:(n*(n+1)/2)%10,对10取余是因为有10个洞⼝(3) 设x为寻找的次数,连续两次进⼊都是出发时的洞⼝(0号洞),可停⽌寻找。
设HOLENUM为洞⼝的个数,本例是10即第x-1次:((x-1)*(x-1+1)/2)%HOLENUM == 0第x次:(x*(x+1)/2)%HOLENUM == 0⼀般的,x = 2*HOLENUM。
即如果洞⼝有10个,则需要找20次,就会在遇到连续两次进⼊出发的洞⼝(本例是第19次和第20次)特殊的,如果HOLENUM是(2^k +1),则 x = HOLENUM,(k = 0,1,2,3......)。
即如果洞⼝有15个,则只需找15次,就会遇到连续两次进⼊出发时的洞⼝(第14次和第15次)(4) 可见,该算法的时间复杂度与洞⼝的个数有关,具体的时间复杂度为Θ(n)4. 代码实现1 #include <stdio.h>2#define HOLENUM 1034void FindRibbit(int Hole[HOLENUM]);56int main()7 {8int hole[HOLENUM] = {0}; // 10个⼭洞9 FindRibbit(hole);10return0;11 }1213void FindRibbit(int Hole[HOLENUM])14 {15int i = 0;16int currenthole = 0, nexthole = 0;17for(i = 1; i <= 2 * HOLENUM; ++i)18 {19 currenthole = (currenthole + i) % HOLENUM; // 当前进去的⼭洞20 Hole[currenthole % HOLENUM] = 1;21 nexthole = (currenthole + i + 1) % HOLENUM; // 下⼀次进去的⼭洞2223if(currenthole == 0 && nexthole == 0) // 如果连续两次进去的⼭洞都是出发时的洞⼝,则接下来的进洞顺序与前⾯的顺序重复,故可以跳出循环24break; // 本例是从10号(即0号)洞⼝出发25 }2628for(i = 0; i < HOLENUM; ++i) // 输出兔⼦可能躲藏的洞⼝29 {30if(Hole[i] == 0)31 printf("the ribbit may be in %d hole\n", i);32 }33 }5. 测试结果the ribbit may be in2 hole the ribbit may be in4 hole the ribbit may be in7 hole the ribbit may be in9 hole。
数学建模实验项目
数学建模实验项⽬数学建模实验指导书数学建模实验项⽬⼀养⽼基⾦问题⼀、实验⽬的与意义:1、练习初等问题的建模过程;2、练习Matlab基本编程命令;⼆、实验要求:3、较能熟练应⽤Matlab基本命令和函数;4、注重问题分析与模型建⽴,了解建模⼩论⽂的写作过程;5、提⾼Matlab的编程应⽤技能。
三、实验学时数:2学时四、实验类别:综合性五、实验内容与步骤:(1.必做,2、3选⼀)1.某⼤学青年教师从31岁开始建⽴⾃⼰的养⽼基⾦,他把已有的积蓄10000元也⼀次性地存⼊,已知⽉利率为0.001(以复利计),每⽉存⼊700元,试问当他60岁退休时,他的退休基⾦有多少?⼜若,他退休后每⽉要从银⾏提取1000元,试问多少年后他的基⾦将⽤完?2.贷款助学问题。
3贷款购房问题。
⾃⼰调查设计具体情况数学建模实验项⽬⼆梯⼦问题⼀、实验⽬的与意义:1、进⼀步熟悉数学建模步骤;2、练习Matlab优化⼯具箱函数;3、进⼀步熟悉最优化模型的求解过程。
⼆、实验要求:1、较能熟练应⽤Matlab⼯具箱去求解常规的最优化模型;2、注重问题分析与模型建⽴,熟悉建模⼩论⽂的写作过程;3、提⾼Matlab的编程应⽤技能。
三、实验学时数:2学时四、实验类别:综合性五、实验内容与步骤:⼀幢楼房的后⾯是⼀个很⼤的花园。
在花园中紧靠着楼房建有⼀个温室,温室⾼10英尺,延伸进花园7英尺。
清洁⼯要打扫温室上⽅的楼房的窗户。
他只有借助于梯⼦,⼀头放在花园中,⼀头靠在楼房的墙上,攀援上去进⾏⼯作。
他只有⼀架20⽶长的梯⼦,你认为他能否成功?能满⾜要求的梯⼦的最⼩长度是多少?步骤:1.先进⾏问题分析,明确问题;2.建⽴模型,并运⽤Matlab函数求解;3.对结果进⾏分析说明;4.设计程序画出图形,对问题进⾏直观的分析和了解(主要⽤画线函数plot,line)5.写⼀篇建模⼩论⽂。
数学建模实验项⽬三确定肥猪的最佳销售时机⼀、实验⽬的与意义:1、认识微分法的建模过程;2、认识微分⽅程的数值解法。
狐狸与野兔-数学建模
实验报告一.实验名称:狐狸与野兔二.实验内容:在一个封闭的大草原生长着狐狸和野兔,设t 时刻它们的数量分别为y(t)和x(t),已知满足下列微分方程组 :kx xy x dtdxxy x dt dxy xy dt dy--=-=-=02.0402.049.0001.0 (k>=0) (1).建立上述微分方程的轨迹线方程: F(x,y)=0 dx/dt=f(x,y)(2).在什么情况下狐狸和野兔数量出现平衡状态(3).建立另一个微分方程来分析人们对野兔进行捕猎会产生什么后果?对狐狸进行捕猎又会产生什么后果?三.实验目的:学习熟悉Mathmatica 的使用,理解人口模型与捕猎问题的建模与求解过程,了解在捕猎过程中两种生物的数量的变化以及其是怎么样达到平衡的.四.问题分析与建模方向: 用matlab 求解人们对野兔进行捕猎的问题。
当封闭(即不考虑人类因素)时:xy x dtdx y xy dt dy02.049.0001.0-=-=运用matlab 直接求解 当有人类干涉时:x k xy x dtdxy k y xy dtdy1202.049.0001.0--=--=)(人们对兔子进行捕猎,是人类捕猎狐狸的速度是人类捕猎野兔的速度022121==k k k k(只对狐狸进行捕猎的情况类此)在一小段时间内△y=△t(0.001xy-0.9y) △x=△t(4x-0.02xy) 则y=y+△y=y+△t(0.001xy-0.9y) x=x+△x=x+△t(4x-0.02xy)运用循环连续求解画出狐狸y,野兔x 与时间t 的曲线图五.算法与求解function sim_hulituzi_ex x0=920; y0=180; a=0.001; b=-0.9; c=4;e=20;f=0.5;delta_t=0.01;x=x0;y=y0;k=0;vec_t=delta_t:delta_t:100for cur_t=vec_t,k=k+1;y=y+(a*x*y+b*y-f*y)*delta_t;x=x+(c*x+d*x*y-e*x)*delta_t;vx(k)=x;vy(k)=y;if vx(end)<1 | vy(end)<1,disp (sprintf('结束时间:t=%10.2f,x=%6.0f,y=%6.0f',cur_t,x,y)) breakendendt=[0,delta_t:delta_t:cur_t]len1=length(t)len2=length([x0,vx])plot(t,[x0,vx],'r-*',t,[y0,vy],'k-o')xlabel('t(unit:day)')hold ontext(t(end)+delta_t*2,vx(end),'X') text(t(end)+delta_t*2,vy(end),'Y') hold offfigureplot(vx,vy,'-*')xlabel('Troop X')xlabel('Troop Y')六.结果以上情况为该草原在自然状况的图形关系,y为兔子,x为狐狸(狐狸初始为180,兔子为92)。
数学建模实验项目八狐狸与野兔问题
数学建模实验项目八狐狸与野兔问题数学建模实验项目八狐狸与野兔问题一、实验目的:1、认识微分方程的建模过程;2、认识微分方程的数值解法。
二、实验要求:1、熟练应用Matlab 的符号求解工具箱求解常微分方程;2、掌握机理分析建立微分方程的方法和步骤;3、提高Matlab 的编程应用技能。
三、实验内容及要求(狐狸与野兔问题)在一个封闭的大草原里生长着狐狸和野兔,设t 时刻它们的数量分别为y(t)和x(t),已知满足以下微分方程组 0.0010.940.02dy xy y dt dx x xy dt =-=- (1)建立上述微分方程的轨线方程;(2)在什么情况下狐狸和野兔数量出现平衡状态?(3)建立另一个微分方程来分析人们对野兔进行捕猎会产生什么后果?对狐狸进行捕猎又会产生什么后果?四、实验步骤及过程1.建立一个名为“0*级计算第08次作业*******”(********表示自己的学号)的文件夹。
2. 打开Matlab 软件,练习实验指定的内容。
3. 将所得结果保存到文件夹中,并上存到天空教室。
莆田学院期末考试试卷2011 ——2012 学年第 2学期课程名称:数学建模适用年级/专业: 09数学试卷类别开卷(√ )闭卷()学历层次本科考试用时《考生注意:答案要全部抄到答题纸上,做在试卷上不给分》...........................答题正文要求:(1)写清建模分析过程、建立的模型、模型求解及其结果、并对结果给予简单的分析;(2)要求每人独立完成一份;(3)试卷打印格式参照教务处有关规定执行;(4)在下列二题中选做一题。
一、借贷问题某地银行对个人住房25年贷款期限的贷款条件通常为:年利率为0.12,而且是月均等额还款。
小叶夫妇要买房还缺6万元,正在考虑到银行去错6万元。
正在这时,小叶夫妇看到一个借贷公司的针对银行贷款条件的广告,说他们可以在年利率0.12的前提下,帮你提前三年还清借款,但是,(1)每半个月还一次款(2)由于每半个月就要开一张收据,文书工作多了,要求顾客预付三个月的还款。
数值实验—捕食模型求解微分方程组
捕食模型求解微分方程组(电子科技大学机械电子工程学院)一、问题叙述:下面的模型被称为捕食竞争模型:在此模型中,t 可以看成是时间,可以认为是兔子的数量,可认为是狐狸的数量,狐狸仅以兔子为食,兔子的食物足够多。
1.解释a>0的意义及b, c,的含义.2.取b=1,c=0.5.选a=0.1, 分别用0de23和ode45解此方程组,并对结果进行比较。
二、问题求解1. a:捕食能力;a>0 存在捕食能力;b: 兔子的自然增长率;c:狐狸的死亡率;2. 代入值,原微分方程组变为:2.1数值求解求微分方程组的初值问题, 在Matlab中用于求解非线性微分方程的常用函数有ode23和ode45, 根据微分方程求解出的结果, 可以得出系统的时间变化曲线和相轨迹图。
时间变化曲线图中, 实线表示被捕食者兔子, 虚线表示捕食者狐狸, 以下均同。
2.1.1 用Matlab中的ode45 解微分方程组图1 两物种的时间变化曲线表1 Y表示兔子的最小值、最大值、均值表2 Y表示狐狸的最小值、最大值、均值图2 相图2.1.2用Matlab中的ode23 解微分方程组图 3 两物种的时间变化曲线表3 Y表示兔子的最小值、最大值、均值表4 Y表示狐狸的最小值、最大值、均值三.实验程序1.建立M文件function dx= ode(t,x) ;%定义输入,输出变量与函数文件名dx = zeros(2,1); %明确dx的维数,用微分方程组时不可缺省dx(1) = x(1) *(1-0.1*x(2)); %dx(m)表示x的m阶导数;x(n)表示X的第n列dx(2) = -x(2) *(0.5- x(1)*0.02); %与方程组的第2个微分方程对应2.在Matlab的命令窗口输入>> [t,x]=ode45('ode',[0 15],[50 5]); %用ode45解微分方程组plot(t,x(:,1),'-',t,x(:,2),'*') %作出二维t-x图>> plot(x(:,1),x(:,2)) %作出相图四.实验结果分析1. 系统分析从上面图形的时间变化曲线和相图中很直观的得到, 在此模型中, 捕食者和被捕食者处于动态平衡之中, 哪一种也不至于灭绝, 各自数量随时间而做周期性变化, 此消彼长, 周而复始。
兔子的数量 建模
数学建模一周论文论文题目:野兔生长问题姓名1:李坤鹏学号:1020560132姓名2:方扬学号:1020560113姓名3:谭小丁学号:1020560114专业:材料化学班级:10205601指导教师:樊健秋2012年06年08 日摘要本题研究的是某地区的野兔生长问题,题目已给出连续十年的统计数据,分析数据可得野兔的生长规律。
题目要求指出哪些年野兔的增长有异常现象并预测T=10时野兔的数量。
假设野兔生长的条件是在无外界干扰的完美条件下(即不考虑外界因素对野兔繁殖的影响),该种群的成长曲线应该为对数型增长。
但依题意可知,野兔增长先是成对数增长后来趋于平缓,变化幅度不断降低,这说明野兔生长并不是处于理想的情况下的,考虑到自然的各种原因,诸如,环境条件因为兔群激增而变得恶劣,天气的变化,天敌的增多等等。
对于这种种群生态学问题,我们可以用Logistic(逻辑斯蒂方程)模型来模拟。
Logistic模型是种群生态学的核心理论之一,它可以很好的表示生物种群的生长规律,动态的表示生物种群的增减情况,例如兔子。
由于野兔生长问题相对简单,其涉及的内容和有求也相对较少,并且该问题概过了种群在生态中生长问题。
根据逻辑斯蒂方程,以及建立一只双曲线右支可以预测出在T=10时,野兔数量为10.8156十万只。
关键字:logistic生物模型预测生长规律预测数量一、问题的重述在某地区野兔的数量在连续十年的统计数量(单位十万)如下分析该数据,得出野兔的生长规律。
并指出在哪些年内野兔的增长有异常现象,预测T=10 时野兔的数量。
首先,野兔是生长在自然环境中的。
自然很复杂,存在着许多影响种群发展的因素。
我们知道,假如给野兔一个理想的环境,野兔数量是呈对数增长的。
现实情况中,种群一般是呈S型增长的,从题中表格看出,野兔的数量并不是单一地增长,T=1,2.31969;T=3,6.90568;T=4,6.00512;T=5,5.56495,呈类J 型增长,说明兔子数量不多受内外因素的因数影响不明显。
生态平衡建模实验
对此生态平衡系统进行仿真实验,改变不同的控制参数,分析实 验的结果,得出系统保持生态平衡的条件,为决策者决策提供理论分 析基础。
二、实验原理
系统动力学(System Dynamics)是美国麻省理工学院 J.W 福雷斯 特(JayW Forrester)教授创立的一门新兴学科。它按照自身独特的方法 论建立系统的动态模型,并借助于计算机进行仿真,以处理行为随时 间变化的系统的问题。系统动力学首先强调系统性的观点,以及联系、 发展、运动的观点,是研究复杂系统,诸如:社会、经济、环境、人口、 生态平衡、产业发展等的有效工具。
int B0[300]; int G0[300]; int D0[300]; int D[300];
//幼年Foxes单位时间出生量 //幼年Foxes单位时间成长量 //幼年Foxes单位时间死亡量 //成年Foxes单位时间死亡量
int b0[300]; int g0[300]; int d0[300]; int d[300];
本实验需要建立一个具有时滞和阶段结构的捕食者-食饵模型。 在自然界中,物种的增长常有一个成长发育的过程,如从幼年到 成年等,在其成长的每一个阶段都会表现出不同的特征,这就是种群 模型的阶段结构。而且,由幼年到成年所需要的成熟时间(时滞)对 种群增长也有影响。 在一个封闭的海岛上,只有两个种群:Foxes 和 Rodents。Foxes 以 Rodents 为食,Rodents 以吃水草为生。水草丰盛的时候,Rodents 大量繁殖,为 Foxes 提供充足的食物来源,因此 Foxes 数量也增加。 随着 Foxes 的增长,大量的 Rodents 被吃掉,Foxes 因食物不足而数 量下降。Rodents 的天敌减少,数量又开始回升。如此,Foxes 和 Rodents 两种种群的数量交替增减循环,小岛上的生态系统实现动态平衡。
python狐狸找兔子教案
python狐狸找兔子教案Python狐狸找兔子教案课程信息•课程名称:Python狐狸找兔子教案•适用对象:中学生•课时数:2课时教学目标1.了解Python编程语言的基本特性和应用领域。
2.学会使用Python编写一个简单的狐狸找兔子小游戏。
3.培养学生的逻辑思维和问题解决能力。
教学准备1.电脑和项目演示设备。
2.安装好Python的集成开发环境(IDE)。
3.下载并安装pygame游戏开发库。
教学内容第一课时导入游戏库和初始化•导入pygame库并初始化。
•创建游戏窗口。
定义游戏元素•定义狐狸和兔子的初始位置。
•定义狐狸和兔子的图片。
游戏循环•创建游戏循环。
•处理用户输入事件。
更新游戏状态•根据用户输入更新狐狸和兔子的位置。
•判断狐狸是否成功找到兔子。
绘制游戏界面•清空屏幕并绘制背景。
•绘制狐狸和兔子。
刷新游戏界面•更新屏幕显示。
•设置游戏帧率。
第二课时添加背景音乐和音效•导入pygame的音乐和音效库。
•添加背景音乐和各种音效。
添加计分功能•初始化计分器。
•显示当前得分。
添加游戏结束逻辑•当狐狸成功找到兔子时,显示游戏结束信息。
•提示是否继续游戏。
调试和改进•检查代码中的错误并进行修复。
•改进游戏玩法和界面,提升用户体验。
游戏发布•打包游戏文件。
•将游戏分享给其他人。
难点解析1.掌握pygame库的基本使用方法。
2.设计游戏的关键逻辑,如狐狸如何找到兔子。
3.错误调试和改进。
总结与扩展•通过本课程的学习,学生们将了解到Python编程的基本特性和应用领域,并具备基本的游戏开发能力。
•学生们可以继续探索更多有趣的Python编程项目,拓展自己的编程能力。
注意:教师在教学过程中要灵活调整教案,根据学生的实际情况进行相应的修改和补充。
第一课时•导入游戏库和初始化–导入pygame库,并使用()初始化库。
•创建游戏窗口–使用_mode()函数创建一个游戏窗口,并传入窗口的宽度和高度作为参数。
•定义游戏元素–定义狐狸和兔子的初始位置,可以使用变量来存储它们的坐标。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学建模实验项目八 狐狸与野兔问题
一、实验目的:
1、认识微分方程的建模过程;
2、认识微分方程的数值解法。
二、实验要求:
1、熟练应用Matlab 的符号求解工具箱求解常微分方程;
2、掌握机理分析建立微分方程的方法和步骤;
3、提高Matlab 的编程应用技能。
三、实验内容及要求 (狐狸与野兔问题)在一个封闭的大草原里生长着狐狸和野兔,设t 时刻它们的数量分别为y(t)和x(t),已知满足以下微分方程组 0.0010.940.02dy xy y dt dx x xy dt =-=-
(1)建立上述微分方程的轨线方程; (2)在什么情况下狐狸和野兔数量出现平衡状态? (3) 建立另一个微分方程来分析人们对野兔进行捕猎会产生什么后果?对狐狸进行捕猎又会产生什么后果?
四、实验步骤及过程
1.建立一个名为“0*级计算第08次作业*******”(********表示自己的学号)的文件夹。
2. 打开Matlab 软件,练习实验指定的内容。
3. 将所得结果保存到文件夹中,并上存到天空教室。
莆田学院期末考试试卷
2011 ——2012 学年第 2学期
课程名称: 数学建模 适用年级/专业: 09数学
试卷类别 开卷(√ )闭卷( ) 学历层次 本科 考试用时 《考生注意:答案要全部抄到答题纸上,做在试卷上不给分》...........................
答题正文要求:
(1)写清建模分析过程、建立的模型、模型求解及其结果、并对结果给予简单的分析;
(2)要求每人独立完成一份;
(3)试卷打印格式参照教务处有关规定执行;
(4)在下列二题中选做一题。
一、借贷问题
某地银行对个人住房25年贷款期限的贷款条件通常为:年利率为0.12,而且是月均等额还款。
小叶夫妇要买房还缺6万元,正在考虑到银行去错6万元。
正在这时,小叶夫妇看到一个借贷公司的针对银行贷款条件的广告,说他们可以在年利率0.12的前提下,帮你提前三年还清借款,但是,
(1) 每半个月还一次款
(2) 由于每半个月就要开一张收据,文书工作多了,要求顾客预付三个月的还款。
小叶夫妇很为这则广告吸引,因为提前三年可节省2万多元,而预付三个月的还款只不过1896元,多合算!但他们还是有点疑惑,难道这家借贷公司是个慈善机构,他们不想赚钱了?他们去请教他们的朋友,学金融数学的小金。
小金说,我们一起来分析一下该借贷公司的两个“但是条例”分别能提前多少时间还清借款。
请你们告诉我,这时已知的是什么,要求的是什么?小叶夫妇不太明白,但小金坚持他们必须弄明白,才能提高分析能力。
在小金的耐心帮助下,小叶夫妇终于明白了。
试问小叶夫妇明白了什么?
二、交通管理中亮黄灯的时间问题
在十字路口的交通管理中,亮红灯之前要亮一段时间黄灯,这是为了让那些行驶在十字路口或距十字路口太近以致无法停下来的车辆通过路口。
那么,黄灯应该亮多长时间才能使这些车辆安全顺利地通过路口呢?。