[关闭]
@2015301020149 2017-09-29T12:55:37.000000Z 字数 1433 阅读 116

第四次作业

计算物理作业 人口增长模型

一、题目选择

二、欧拉法推导算法

三、程序模拟

代码链接

图像

可见,人口数量经过了一个由缓慢、快速、再到缓慢,最后趋于稳定值 1000 的图像,惊奇的发现这就是高中生物书上的马尔萨斯模型!

接着我又计算了人口的增长速率,只需要在源代码中加入一个初值为 0 的变量稍加修改就可以了

代码链接

图片

上图反应的特点可以这样解释:开始时由于环境广阔、食物充裕,人口快速增长,同时由于人变多了增长速率进一步加快,很快达到速率峰值。但随着人口不断增加,生存空间越来越小,使的人口增长速率变缓,最后趋于 0,此时人口数量也趋于稳定。

图片

人口在开始时迅速下降,并最终趋于稳定值1000

四、问题及讨论

在运行人口减少的程序时,中途出现了这样一个图像

图像

人口数量曲线并不平滑,出现了非常生硬的折线。经过分析我找到了原因

  1. N=[] #population
  2. t=[] #time
  3. a=10 #assign a value to a
  4. b=0.01 #assign a value to b
  5. det_t=0.5 #time step
  6. N.append(1) #assign a value to first item of v[]
  7. t.append(0) #assign a value to first item of t[]
  8. end_time=2 #total time

注意代码中的det_t=0.5,这个时间间隔太大了,由于初始时,所以初始时人口下降速度非常快,如果此时时间间隔太大,人口数量将缺少一个缓缓平稳的过程。所以欧拉方法也有它的弊端:所取时间间隔的大小直接决定了方程拟合的准确性,并且当函数的变化率非常大时对时间间隔的要求就更高了。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注