人口增长模型
摘要
本文根据某地区的人口统计数据,建立模型估计该地区2010年的人口数量。
首先,通过直观观察人口的变化规律后,我们假设该地区的人口数量是时间的二次函数,建立了一个二次函数模型,并用最小二乘法对已有数据进行拟合得到模型的具体参数,从而可以预测2010年的人口数为333.8668百万。
然后,我们发现从1980年开始该地区的人口增长明显变慢,于是我们假设人口增长率是人口数的线性减函数,即随着人口数的增加,人口的增长速度会慢慢下降,从而我们建立了阻滞增长模型,利用此模型我们最后求出2010年的人口预报数为296.3865。
关键字:人口预报,二次函数模型,阻滞增长模型
问题重述:
根据某地区人口从1800年到2000年的人口数据(如下表),建立模型估计出该地区2010年的人口,同时画出拟合效果的图形。
表1 该地区人口统计数据
符号说明
)(t x t 时刻的人口数量 0x 初始时刻的人口数量 r 人口增长率
m x 环境所能容纳的最大人口数量,即0)( m x r
问题分析
首先,我们运用Matlab 软件[1]编程(见附件1),绘制出1800年到2000年的人口数据图,如图1。
18001820184018601880190019201940196019802000
图1 1800年到2000年的人口数据图
从图1我们可以看出1800年到2000年的人口数是呈现增长的趋势的,而且类似二次函数增长。所以我们可以建立了一个二次函数模型,并用最小二乘法对已有数据进行拟合得到模型的具体参数。
于是我们假设人口增长率是人口数的线性减函数,即随着人口数的增加,人口的增长速度会慢慢下降,从而我们可以建立一个阻滞增长模型。
模型建立
模型一:二次函数模型
我们假设该地区t时刻的人口数量的人口数量)(t x是时间t的二次函数,即:
2()x t at bt c =++
我们可以根据最小二乘法,利用已有数据拟合得到具体参数。即,要求a 、b 和
c ,使得以下函数达到最小值:
221
(,,)()n
i i i i E a b c at bt c x ==++-∑
其中i x 是i t 时刻该地区的人口数,即有:
2222)3.28020002000...)2.718001800(),,(-+?+?++-+?+?=c b a c b a c b a E
令
0,0,0E E E a b c
???===???,可以得到三个关于a 、b 和c 的一次方程,从而可解得a 、b 和c 。
我们用Matlab 编程(见附件2),解得=a 0.006018,357.21-=b ,18948=c ,即:
18948
357.21006018.0)(2+-=t t t x
从而我们可以预测2010年的人口数为8668.333)2010(=x 百万。
1800
18501900
195020002050
年份
人口数
图2 二次函数模型的拟合效果图
图2是所得到的二次函数模型和原数据点的拟合效果图。 从图2可以看出拟合的效果在1950年之前还可以,但是对后期的数据拟合的不好。
模型二:阻滞增长模型
我们假设人口增长率r 是人口数x 的线性减函数,即随着人口数的增加,人口增长速度会慢慢下降:
0()r x r sx =-
人口数量最终会达到饱和,且趋于一个常数m x ,当m x x =时,增长率为0:
00m r sx -=
由上面的关系式可得出:
0()1m x r x r x ??
=- ???
把上式代进指数增长模型的方程中,并利用初始条件2.7)1800(=x ,可以得到:
?
????=???
?
?
?-=2
.7)1800(10x x x x
r dt dx m 解得:
)
1800(172101)(--??
? ??-+=
t r m m
e x x t x
我们可以利用已有数据拟合求解得(程序见附件4):
36.334=m x , =r -0.027958。
可以预测2010年的人口数为3865.296)2010(=x 百万。
1800
18501900
195020002050
年份
人口数