虫口模型的研究与教学设计.PDF
虫口模型的研究与教学设计
作者:贾砚宾
1 物理情景
假定有某种昆虫,在不存在世代交叠的情况下,即每年夏天成虫产卵后全部死亡,
第二年春天每个虫卵孵化为虫。很显然,若产卵数大于 1,则虫口就会迅速增加,“虫满
为患”。但在虫口数目增大的同时又由于争夺有限的食物和生存空间而不断发生咬斗事
1
件,也可能因接触感染而导 疾病蔓延,这些又会使虫口减少 。
综合考虑正增长和负增长,即鼓励和抑制这两种因素的 用,经过一定的数学抽象
和变换后,最终得到虫口方程如下:
xn1 lx n 1 xn (3.4.1 )
式中各量的取值范围为
n= 1,2 ,3,…,∞ x :[0,1]; :[0,4]
n
式中各量的意义如下。假定虫口环境所能支撑和供应的最大虫口限额为 N0 ,且
N >>1 。第n 代虫口数为N ,则x =N /N ,是为第n 代的相对虫口数。显然,1 就是最大
0 n n n 0
虫口数目,故xn 的值不能超过 1。 是控制参量。虫口模型要求 取值[0,4] ,这是因为
在 >4 时会出现发散现象,方程就将失去意义。如对x =5x ( 1-x ) ,当代入x =0.5 后会
n+1 n n n
得到x =1.25 ,而最大相对虫口数只能为1,x = 1.25 显然没有意义。
n+1 n
这是一个最简单的非线性动力系统模型,系统的解随控制参量的变化 (时间 (n )的
推 ,随着 的变化)而变化,许多奇特的事情将会发生。虫口方程的形式很简单,但
其内容却十分丰富,值得进一步去研究它。
下面我们就编写Matlab 程序,研究在确定的 值下,xn 与n 的关系,以及n 很大的
情况下xn 随着 的分布情况。
2 编程例析
首先试着画出当λ取固定值,x0 为在[0,1]间的任意初值,迭代次数达到足够大时xn
的变化趋势,即x -n 图。程序代码如下:
n
x0=abs(sin(randn));y0=0; %取x0 为[0,1]间的随机数
lamda=0.8; % 固定定λ值
xn=x0; %将x0 赋给迭代变量xn
1 《物理学补充教材》http :///dehome/study/contents/renew.htm2003
for n= 1:150 % 以n 为循环变量开始循环迭代
xn=lamda*xn*(1-xn); %进行迭代150 次
plot(n,xn,'*b'); %画出每次迭代出的xn 值,横坐标为迭代次数。
hold on
end
我们还可以用另一种方式看出xn 与n 的关系。固定参量λ后,将式(3.4.1)右边看
函数y = λx (1-x ),我们将其作为映射函数。为了把每一次迭代的结果变成下一次的输
入量,在图上画一等分角线y =x,并通过它与映射函数之间做一次投影。取一个初值x ,
0
在图上不断 竖直线和水平线来实现迭代,得到一条轨线 x ,x ,x ,x ,…,x ,…,