数学建模
生活在同一环境中的各类生物之间,进行着残酷的生存竞争。设想一海岛,居住着狐狸与野兔,狐吃兔,兔吃草,青草如此之丰富,兔子们无无食之忧,于是大量繁殖;兔子一多,狐易得食,狐量亦增,而由于狐狸数量增加吃掉大量兔子,狐狸又进入饥饿状态而使其总数下降,这时兔子相对安全,于是兔子总数回升。就这样,狐兔数目交替地增减,无休止的循环,遂形成生态的动态平衡。建立合适的数学模型描述这一过程,并对总体变化趋势进行预测无疑是重要的。
意大利著名物理学家、数学家Volterra在20世纪20年代建立了这个问题的一个著名模型如下:
(1)
其中:
(1)表示t时刻兔子数目;
(2)表示t时刻狐狸数目;
(3)表示兔子的繁殖速度,与现存兔子数成正比;
(4)表示兔与狐相遇并被吃掉的速度;
(5)表示狐狸因同类竞争造成的死亡速度,与狐狸总数成正比;
(6)表示狐兔相遇,对狐狸有好处而使狐狸繁殖增加的速度;
(7)均为正常数;
这个微分方程模型是达尔文主义的数学表达,称为Volterra-Lotka模型。据此可以得到很多有价值的信息。
请完成如下两个问题:
(1) 设;试仿照课本5.1节,用ode数值解法在时间段[0,15]上求解式(1)对应的微分方程,并做出
(i) 兔子、狐狸数量随时间变化的曲线;
(ii) 狐狸数量随兔子数量变化的相轨线;
(iii) 在时间段[0,100]上重新求解,做出图形,并从中体会自然界生物种群数量的动态平衡性。
(2) 若考虑人类对自然界的生物群体要进行干涉,例如人类既猎取狐狸又滥杀兔子,此时可以建立下面的数学模型:
(2)
其中,表示捕捉率。在维持第(1)问中参数条件不变的情况下,分别令等于0.5和1.2,求解新模型,并做出兔子、狐狸数量变化曲线、相轨线;体会人类捕捉率对生物种群数量动态平衡的影响。
C++
模拟生态系统
利用虚函数,定义一个生命主类,里面有生长扑食等虚函数,三个子类,草,兔子,狼,用S、G、R、W表示空地,草,兔子,狼。
生命规则:
a、若空地周围有草地,则下一个周期空地变为草地的概率为50%;否则,概率为20%;
b、如果草地周围有兔子,则下一个周期草地变为空地的概率为50%;
c、如果兔子周围两个周期内没有草,下一个周期兔子变为空地;否则,草地以50%的概率变成兔子;
d、如果兔子周围有狼,下一个周期以50%的概率兔子被狼吃掉,变成空地;
e、如果狼周围四个周期内没有兔子,下一个周期狼变为空地;否则,它周围的一个兔子以30%的概率变成空地,30%的概率变成狼。
初始状态:
a、生态系统为1000X1000的正方形区域;
b、初始草地占20%,兔子占10%,狼占5%,随机生成;
c、一次循环记为一个生命周期。
要求:给出10个周期,30个周期,100个周期运行结果