中国人口增长模型
摘要
本文从人口数量入手,探讨了中国人口从1949年至2004年间的增长规律。建立了线性模型Ⅰ和指数模型Ⅱ,通过对两种模型进行比较,说明线性模型更适合中国人口增长情况。最后对模型结果进行检验,基本符合中国人口数量实际。 [关键词]
人口模型 线性模型 指数模型
人口问题已成为当前世界上被最普遍关注的问题之一,当然人口增长规律的发现以及人口增长的预测对一个国家制定比较长远的发展规划有着非常重要的意义。中国是个人口大国,人口数量、素质、结构、分布等问题始终是制约我国发展的关键因素之一。本文仅从人口数量入手,讨论我国人口的增长情况。
1、我国建国以来人口统计情况 通过查阅我国人口数据资料得到下表
把以上数据点通过Matlab软件绘制出来,得到图1
[1**********]65
2、两种模型的建立 模型Ⅰ
从图中点的分布可以认为,这些点大致分布在一条直线的附近。我们可以假设中国人口数量呈线性增加,设该直线方程为yaxb,需要确定系数a、b。
利用Matlab,做线性拟合,得a0.1455、b278.4031 则该直线方程为:y0.1455x278.4031 图形如下:
1413
[**************]
[***********]9020002010
模型Ⅱ
通过查阅有关资料,通常人口数量会呈指数增加,不妨设人口数量y与时间x之间的关系为:
yaebx
其中a、b为待定系数。 为此,我们做如下变形:
lnylnabx
令Ylny、lnaA、bxBx, 则上式变形为:
YABx
这样也可以看成线性关系。
同样利用Matlab,可以求出:B0.0165,A30.3614,则有
Y0.0165x30.3614,
其中Ylny、lna30.3614。 整理得:yeY,ae30.3614 即模型Ⅱ的函数关系式为:
ye30.3614e0.0165x 对应图形为:
1514
[**************]40
1950
1960
1970
1980
1990
2000
2010
3、两种模型结果比较及误差分析
分别计算出两种模型对应的人口数量及存在的误差,得到如下表格。
结果分析
利用最小二乘法原理,模型Ⅰ的误差平方和为Q10.4463,模型Ⅱ的误差平方和为Q22.0893,显然Q1Q2,说明线性模型更适合中国人口增长。
4、模型检验和预测
按照模型结果,当x2009时,按模型Ⅰ,中国的人口数量为13.91亿,这与实际人口数量13.35亿相差不大。同时可以预测2014年,中国的人口数量为14.63亿.
附件
x=1949:5:2004;
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.98 12.53 13]; plot(x,y,'*') polyfit(x,y,1) hold on
y=0.1455*x-278.4031; plot(x,y) y
x=1949:5:2004;
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.98 12.53 13]; Y=log(y); polyfit(x,Y,1) x clear
x=1949:5:2004;
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.98 12.53 13]; a=polyfit(x,y,1) y1=a(2)+a(1)*x; hold on plot(x,y,'*') plot(x,y1,'--r') y1=a(2)+a(1)*x; plot(x,y1,'--r') plot(x,y,'*') hold on
plot(x,y1,'--r')
b=polyfit(x,log(y),1) y2=exp(b(2))*exp(b(1)*x); hold on
plot(x,y2,'-k') plot(x,y,'*') hold on
plot(x,y2,'-k') y1 y2
x=[5.4 6.0 6.7 12.58 13];
7.0
8.1
9.1
9.8
10.3 11.3 11.98
y=[5.27 5.99 6.72 7.45 8.18 8.90 9.63 10.36 11.09 11.8112.54 13.27]; x-y
y=[5.66 6.15 6.68 7.25 7.87 8.55 9.28 10.08 10.94 11.88 12.90 14.01]; x-y Q2=ans.^2 sum(Q2)
x=[5.4 6.0 6.7 12.58 13];
7.0 8.1 9.1 9.8 10.3 11.3 11.98
y=[5.27 5.99 6.72 7.45 8.188.90 9.63 10.36 11.09 11.81 12.54 13.27]; x-y Q1=ans.^2 sum(Q1) x=2009;
y=0.1455*x-278.4031
y2=exp(-30.3614)*exp(0.0165*x)
x=2014
y=0.1455*x-278.4031
y2=exp(-30.3614)*exp(0.0165*x) x=1949:5:2004;
y=[5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.98 12.53 13]; plot(x,y,'*') polyfit(x,y,1) hold on
y=0.1455*x-278.4031;