hoho,原来那个blog上贴的数学建模很受欢迎,虽然写的不怎么样,但是有人问我,我还是很开心的
所以贴来这里和大家分享下
现在在当志愿者,先随便发哈。等回来整理哈格式。呵呵
唉,这个学期参加了数学建模
熬了2个通宵
呵呵
一开始我们就选择了A题,看其他组变来变去的
心中还是坚持了A题
主要是因为找到可以套用的模板了
开始心想马上就可以做好
于是第一天就早早的回家休息了
谁知看那个模型看了半天才看懂
后来有用matlab编程
画图
弄数据,正了个通宵
后面就开始写文档了
唉,到晚上一点终于完工
可是会不了宿舍了
有只得通宵-_-!
不知道最终结果回怎样啊??
2007高教社杯全国大学生数学建模竞赛
承 诺 书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写): A
我们的参赛报名号为(如果赛区设置报名号的话):
所属学校(请填写完整的全名): 云南大学
中国人口增长预测
摘要:
本文根据中国现有国情和过去几年的人口数据建立出了符合中国人口增长的数学模型。在此模型的基础上进一步对中国人口的中短期和长期趋势做出预测,其合理性和实用性都比较好。其目的主要是用来给中国的人口政策,和中国人口老龄化的程度进行预测 。
针对问题,我们对影响人口增长的各方面因素进行综合考虑,发现女性在人口增长中起着决定性的作用,并对此进行了模型的建立。
文中我们选择了Leslie(莱斯利)矩阵进行数学建模,和Matlab建模工具并用Matlab命令编程进行模型的测试,对中国人口作了短期(10年),中期(20年)和长期(50年)做出了中国总人口的预测和中期和长期的人口年龄结构。
对于年龄结构模型,我们考虑年龄的分组,用Leslie矩阵定理2 X(n) 。
最重要的是我们的建模是一个不断改进的一个过程。
.
关键词:中国人口 生育率 存活率 死亡率 人口向量 Leslis矩阵 Matlab
一、 问题重述
中国是一个人口大国,人口问题始终是制约我国发展的关键因素之一。近年来中国的人口发展出现了一些新的特点,例如,老龄化进程加速、出生人口性别比持续升高、乡村人口城镇化等因素,这些都影响着中国人口的增长。进来还有一些人认为我国应该放松计划生育,允许生二胎。但放宽二胎将会对中国总人口有什么影响还是个未知数。
建立人口数学模型,可以用来预测世界、国家和地区的人口,但是研究人口问题的主要目的,不仅是能够预测将来的人口,而是要能动地控制人口的数量,改善人口的年龄结构。人口问题是一个关系全局的重要问题,人口的变动会影响到基本国策的制定,影响到劳动就业的安排,社会福利事业的安排,甚至影响到国民经济和社会发展战略的规划。所以正确的预测人口对处理人口、资源、经济的关系,才能使人民的生活水平尽早富裕,同时促进社会的可持续发展提供有力的支持和保障。
本文从中国的实际情况和人口增长的上述特点出发,根据大赛附录2 已有数据和从国家统计局网站上下载的人口数据,对中国人口增长情况建立中国人口增长的数学模型,并由此对中国人口增长的中短期和长期趋势做出分析和预测。其中主要的研究问题有:
问题1.预测人口总人数变化规律。
问题2.预测中国年龄结构,反映中短期和长期中国老龄化问题。
问题3.预测中短期和长期后城、镇、乡人口的分布的问题。
问题4.实行二胎对中国总人口的影响。
二、 问题的分析
当今,人口预测已经发展得非常成熟了,因此我们的策略是找合适的模型,并在原有模型基础上进行改进。
第一个找到的模型是马尔萨斯模型,这个模型是认为人口总数是成指数 增长的。如果世界人口按照这个模型发展,那地球陆地几年就被人类给站满掉了。
第二个考虑的模型为Logistic模型(阻滞增长人口模型),其图形如下
图1阻滞增长人口模型
它可以用来预测中国人口,但是附件里提供的数据让我们感到不易计算如果采用阻泄Logistic模型 ,它要假设M 每年的总人口。
第三个考虑了Leslie(莱斯利)模型,它是由女性人口数量为基准对象,通过男女比率得出人口总数。该模型主要建立了Leslie矩阵,构成Leslie矩阵的数据有每个年龄组女性的生育率、存活率(由1-死亡率得出)。
根据Leslie矩阵模型的性质,不仅可以在男女比率固定的条件下得到总人数 。还可以算出各年龄层次女性的变化,及各年龄段的总人口也能算出。问题二随之解决。因此我们决定在Leslie模型基础上进行改进。
问题三,我们可以利用原始统计数据按城市、城镇、乡村分别统计的特性。只要分开计算就可以算出市镇乡人口的分布率。再根据矩阵的性质,就可以推算出以后每一年的市、镇、乡的人口。
问题四是再前3个解决了的基础上,考虑到中国实行计划生育政策。因此我们可以根据优化模型来分析,每个妇女生育胎次对中国人口增长的影响。
三、 模型的假设
1. 本模型以女性人口数量为基准对象。假设男女比例为1:1。
2. 把女性按年龄大小等分为 个年龄组,不同年龄组的生育率 和死亡率 不同。
3. 生育率仅与年龄段有关,存活率也仅与年龄段有关。
4. 不考虑生存空间等自然资源的制约,不考虑意外灾难,不考虑移民等因素对人口变化的影响。
5. 女性的寿命不超过90岁。
四、 符号说明
:把女性按年龄大小等分为 个年龄组, ;
:用时间离散方法等到的某一个时段,长度与年龄组区间相等(即一年);
:女性人口比率;
: 年龄组女性的生育率;
: 年龄组女性的死亡率;
: 年龄组女性的存活率,根据 得出 ;
: 时间段 年龄组女性的人口数量;
: 时间段女性的人口数量;
: 时间段 年龄组女性人口比率,即 年龄组女性人口/ 时间段总人口;
: 时间段 年龄组女性的生育率;
: 时间段 年龄组总体的死亡率;
(t): 时间段 年龄组总体的存活率,根据 得出 ;
: 时间段我国的总人口数量。
: 时间段每个育龄女性平均生育婴儿数
主要参数说明:
1. 存活率 (t) = 1 – :
2. 生育率 :
一、 模型的建立与求解
1. 建立原始模型
根据人口统计情况,我们可以知道当前 时间段 年龄组女性的人口数量 以及 时间段 女性的人口数量 。
首先我们假定 年龄组女性的生育率 、 年龄组女性的死亡率 不随时间变化,女性人口比率 始终保持不变。
l 在 时间段 年龄组女性的人口数量 ,等于 时间段内出生并存活下来的人数。
l 在时间段 年龄组女性的人口数量 ,等于 时间段 年龄组女性通过自然增长存活下来的人数。
(2)
那么, 时间段女性的人口数量 就可以根据上述的两条公式等到:
(3)
同时,我们可以得出人口增长模型示图:
由公式(3)可以得到 时间段女性人口数量按年龄组分布的向量:
(4)
令:
(5)
于是公式(3)可以改写为:
(6)
假定 是某一时间段(某一年)的女性人数,它已经由统计资料给出,那么经过 年后女性人数 为:
(7)
因此,由公式(7)便可以通过基准人口数 、 年龄组女性的生育率 、 年龄组女性的死亡率 ,预测出经过任意时间 女性的人口数量 ;并且又可以结合女性人口比率 ,得出该时间段我国的总人口数量 :
但是,根据分析,我们可以发现这个数学模型有几个不足之处:
l 此模型中 时间段中0岁的人口是根据 年各年龄组女性基数乘以生育率求和得出的。新生人口中有女性的也有男性的,但是它计算的时候并没有先把男性人口数分离出来。
l 此模式并没有考虑新生人口的存活率问题。
l 此模型假设了 年龄组女性的生育率 、 年龄组女性的死亡率 不随时间变化。但是现实中,各年龄组女性的生育率及死亡率会随社会发展状况及男女性别比率等各种因素而发生变化的。因此预测结果的误差会变大。
l 此模型中认为从0岁到 岁的女性都有生育能力。实际上,女性都有一个育龄期,如果一个女性的年龄小于或大于这个育龄期区间,那么她是没有生育能力的。
1. 改进模型
因此我们必须对它做一些改进,才能使它更准确地预测人口增长情况。
同样,我们以年为组划分年龄组, 时间段 年龄组女性的生育率记为 , 时间段 年龄组女性的死亡率记为 , 时间段 年龄组女性人口比率记为 ,由此得到 时间段 年龄组女性的存活率 (t)。另外设定 为女性的育龄期,
在 时间段 年龄组的人口数量 ,等于 时间段内出生并存活下来的人数。
将 分解为:
(b)
1. 其中 是生育模式[1],它成立:
2. 表示 时间段每个育龄女性平均生育婴儿数:
令:
(e)
将公式(e)代入公式(a),那么公式(a)可以改写为:
分别令:
(g)
(h)
(i)
那么有:
(j)
在社会稳定的前提下,生育率和死亡率都比较稳定,从而可以视 、 为常规矩阵 、 ,那么公式(j)可以化简为:
(j)
这个便是我们确定的最终模型。由此改进过的数学模型我们就可以定义一些人口指数:
1) 人口总数
2) 平均年龄
3) 平均寿命
4) 老龄化指数
一、 模型检验
下面是对问题的解决,我们把原始的统计数据导入到Matlab 中,并编写合适的Matlab程序实现对模型的测试。
1) 人口总数预测
根据改经的模型,我们得知状态方程(k)中, 为控制变量、 为状态变量。那么寻求某人口指数或综合若干人口指数的代价函数的最有值,可以称为离散人口控制模型,由于模型关于控制变量和状态变量都是线性的,因此我们称它为离散双线性模型。
在我国人口问题上,假设一个育龄期内各年龄组女性的生育率不随时间变化,那么:
即 是 时间段 岁女性一生平均生育的婴儿数,称为生育胎次,它是控制人口的最主要参数。
利用2002年的人口统计数据,我们就可以用离散双线性模型来预测我国的人口在未来若干年的增长情况了。
① 可利用外推得死亡率公式:
② 生育模式用 分布的离散值:
③ 时间段 年龄组女性人口比率 根据统计为0.487
假定我国目前得 值为1.6,那么可得未来不同时期的人口统计结果。
短期预测到2020年 ,这里我们只关注总人口,前提条件是我们假设城乡的人口不流动。可以看到2004年到2020年中国人口呈现增长的态势。并接近15亿。
图2 我国人口短期增长预测图
中期预测,中国人口到2050年我国人口增长放缓开始呈现平稳方展。到2030年左右中国将面临一个人口峰值。但随后增长将放缓到平稳。
图3 我国人口中期增长预测图
长期预测 我国人口增长将继续放缓到平稳,人口维持在15亿人上下。
图4 我国人口长期增长预测图
2) 中国年龄结构预测
到2010年中国的年轻人占绝大比率,当然也看到40-50岁也占很大比重。
到2020年还是持续着年轻人占主要成份在人口中。
可发现到2050年农村的老龄化程度最高。且大部分为60岁以上老人。
在三次预测的中乡村人口是一直占最大比重。在人口老龄化中也是表现的得罪严重。
不足之处是没有考虑到人口的流动性。 但预测结果也有合理性,当前中国的老龄化问题的确越来越严重。据官方网站资料2005 是11%,2020将是20%。
问题2解决同时问题3中国人口城市、城镇、乡的分布也体现了出了。如上图所示,但是我们的条件是假设人口不流动。所以有一定的缺陷。
3) 生二胎对中国人口增长的影响
β为一个妇女一生平均所生的婴儿个数,称为生育胎次 。设定不同的生育胎次,我们可以预测到中国人口从2005年到2050年的人口增长状况:
2005年中国人口为13亿,由次我们可以分析到若中国放开计划生育,全部允许生二胎,那2020中国人口将增长到16亿,2030年中国人口将增长到17亿,2045到19亿。可见中国计划生育政策不能构放松当前。根本原因是由于中国人口基数过于庞大。
所以经上表预测,全国总生育率应该在2以下,我们的数据表明这个数据应该在1.6到2.0之间最为合适。这样中国人口才不至于增长过快。
二、 模型的评价
1.模型的优点
1) 建立的模型能与实际紧密联系,结合实际情况对所提出的问题进行求解,是模型更贴近实际,通用性、推广性较强。
2) 通过利用数学工具和Matlab编程的方法,严格地对模型求解,具有科学性。
3) 模型能比较准确地预测我国中短期人口增长情况,如总人口,年龄结构分布,等。
4) 对 这个关键参数进行了灵敏度分析,对于我国人口增长情况的预测及人口控制提供了有价值的参考。
2.模型的缺点
1) 基准数据是某一年的人口统计数据,因此它的预测精度受基准数据的影响比较大。
2) 在预测我国人口增长情况中,我们对原始数据进行了一些处理,如女性分年龄组的人口数据向量,女性人口比率等,这些方法给最终的结果带来了一定的误差。
3) 在应用模型的过程中,我们都是分城市、城镇、乡村3各部分来分别统计的,没有考虑到城镇化进程及人口流动等因素对我国人口结构的影响,这也会给统计的结果带来误差。
4) 模型没有提供如何控制 参数的方法,这主要影响到今后我国计划生育基本国策的实施等问题。
3. 要改进的地方
计算人口分布的时候应该加上流动性因素。人口分布会更准确。
三、 参考文献
[1] 谭永基 蔡志杰,数学建模,上海:复旦大学出版社,1997年2月
[2] 吴建国,数学建模案例精编,北京:中国水利水电出版社,2005年
[3] 王文波,数学建模及其基础知识详解,武汉:武汉大学出版社,2006年5月
[4] 杨启帆,数学建模竞赛—浙江大学学生获奖论文点评,浙江:浙江大学出版社, 2005年
[5] 杨芝馨,高等数学,北京:高等教育教育出版社, 1979年
[6] 邱晓华,中国人民共和国国家统计局, http://www.stats.gov.cn ,
2007年10月22日
附录:1
Matlab程序
%2010年人口预测
%城市人口的leslie矩阵
c2002c = gallery('leslie', a2002c, b2002c);
%根据2002年的数据预测出8年后的全国城市女性的人口数目分布向量
r2002c = c2002c^8 * n2002c;
%假设8年后男女比例为1:1,计算出全国城市人口数目
f2010c = 2 * r2002c;
%镇上人口的leslie矩阵
c2002z = gallery('leslie', a2002z, b2002z);
%根据2002年的数据预测出8年后的全国镇上女性的人口数目分布向量
r2002z = c2002z^8 * n2002z;
%假设8年后男女比例为1:1,计算出全城镇上人口数目
f2010z = 2 * r2002z;
%乡村人口的leslie矩阵
c2002x = gallery('leslie', a2002x, b2002x);
%根据2002年的数据预测出8年后的全国乡村女性的人口数目分布向量
r2002x = c2002x^8 * n2002x;
%假设8年后男女比例为1:1,计算出全国乡村人口数目
f2010x = 2 * r2002x;
figure;
title('2010年城,镇,乡人口预测');
hold on;
%按年龄显示全国城市人口分布图
plot (f2010c, 'r');
%按年龄显示全国城镇上人口分布图
plot (f2010z,'b');
%按年龄显示全国乡村人口分布图
plot (f2010x,'g');
xlabel('年龄');
ylabel('人口数');
text(75,13500000,'总人口:13.6亿');
legend('城市人口','镇上人口','乡村人口');
%2020年人口预测
%城市人口的leslie矩阵
%根据2002年的数据预测出18年后的全国城市女性的人口数目分布向量
r2002c = c2002c^18 * n2002c;
%假设18年后男女比例为1:1,计算出全国城市人口数目
f2020c = 2 * r2002c;
%镇上人口的leslie矩阵
%根据2002年的数据预测出18年后的全国镇上女性的人口数目分布向量
r2002z = c2002z^18 * n2002z;
%假设18年后男女比例为1:1,计算出全城镇上人口数目
f2020z = 2 * r2002z;
%乡村人口的leslie矩阵
%根据2002年的数据预测出18年后的全国乡村女性的人口数目分布向量
r2002x = c2002x^18 * n2002x;
%假设18年后男女比例为1:1,计算出全国乡村人口数目
f2020x = 2 * r2002x;
figure;
title('2020年城,镇,乡人口预测');
hold on;
%按年龄显示全国城市人口分布图
plot (f2020c, 'r');
%按年龄显示全国城镇上人口分布图
plot (f2020z,'b');
%按年龄显示全国乡村人口分布图
plot (f2020x,'g');
xlabel('年龄');
ylabel('人口数');
text(75,13500000,'总人口:14.4亿');
legend('城市人口','镇上人口','乡村人口');
%2050年预测
%城市人口的leslie矩阵
c2004c = gallery('leslie', a2004c, b2004c);
%根据2004年的数据预测出46年后的全国城市女性的人口数目分布向量
r2004c = c2004c^46 * n2004c;
%假设46年后男女比例为1:1,计算出全国城市人口数目
f2050c = 2 * r2004c;
%镇上人口的leslie矩阵
c2004z = gallery('leslie', a2004z, b2004z);
%根据2004年的数据预测出46年后的全国镇上女性的人口数目分布向量
r2004z = c2004z^46 * n2004z;
%假设46年后男女比例为1:1,计算出全城镇上人口数目
f2050z = 2 * r2004z;
%乡村人口的leslie矩阵
c2004x = gallery('leslie', a2004x, b2004x);
%根据2004年的数据预测出46年后的全国乡村女性的人口数目分布向量
r2004x = c2004x^46 * n2004x;
%假设46年后男女比例为1:1,计算出全国乡村人口数目
f2050x = 2 * r2004x;
figure;
title('2050年城,镇,乡人口预测');
hold on;
%按年龄显示全国城市人口分布图
plot (f2050c, 'r');
%按年龄显示全国城镇上人口分布图
plot (f2050z,'b');
%按年龄显示全国乡村人口分布图
plot (f2050x,'g');
xlabel('年龄');
ylabel('人口数');
text(75,13500000,'总人口:14.1亿');
legend('城市人口','镇上人口','乡村人口');