@2015301020149
2017-09-29T12:55:37.000000Z
字数 1433
阅读 116
计算物理作业
人口增长模型
可见,人口数量经过了一个由缓慢、快速、再到缓慢,最后趋于稳定值 1000 的图像,惊奇的发现这就是高中生物书上的马尔萨斯模型!
接着我又计算了人口的增长速率,只需要在源代码中加入一个初值为 0 的变量稍加修改就可以了
上图反应的特点可以这样解释:开始时由于环境广阔、食物充裕,人口快速增长,同时由于人变多了增长速率进一步加快,很快达到速率峰值。但随着人口不断增加,生存空间越来越小,使的人口增长速率变缓,最后趋于 0,此时人口数量也趋于稳定。
人口在开始时迅速下降,并最终趋于稳定值1000
在运行人口减少的程序时,中途出现了这样一个图像
人口数量曲线并不平滑,出现了非常生硬的折线。经过分析我找到了原因
N=[] #population
t=[] #time
a=10 #assign a value to a
b=0.01 #assign a value to b
det_t=0.5 #time step
N.append(1) #assign a value to first item of v[]
t.append(0) #assign a value to first item of t[]
end_time=2 #total time
注意代码中的det_t=0.5,这个时间间隔太大了,由于初始时,所以初始时人口下降速度非常快,如果此时时间间隔太大,人口数量将缺少一个缓缓平稳的过程。所以欧拉方法也有它的弊端:所取时间间隔的大小直接决定了方程拟合的准确性,并且当函数的变化率非常大时对时间间隔的要求就更高了。