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岁。
四、 符号说明
主要参数说明:
1. 存活率
2. 生育率
一、 模型的建立与求解
1. 建立原始模型
根据人口统计情况,我们可以知道当前
首先我们假定
l 在
l 在时间段
那么,
同时,我们可以得出人口增长模型示图:
由公式(3)可以得到
令:
于是公式(3)可以改写为:
假定
因此,由公式(7)便可以通过基准人口数
但是,根据分析,我们可以发现这个数学模型有几个不足之处:
l 此模型中
l 此模式并没有考虑新生人口的存活率问题。
l 此模型假设了
l 此模型中认为从0岁到
1. 改进模型
因此我们必须对它做一些改进,才能使它更准确地预测人口增长情况。
同样,我们以年为组划分年龄组,
在
将
1. 其中
2.
令:
将公式(e)代入公式(a),那么公式(a)可以改写为:
分别令:
那么有:
在社会稳定的前提下,生育率和死亡率都比较稳定,从而可以视
这个便是我们确定的最终模型。由此改进过的数学模型我们就可以定义一些人口指数:
1) 人口总数
2) 平均年龄
3) 平均寿命
4) 老龄化指数
一、 模型检验
下面是对问题的解决,我们把原始的统计数据导入到Matlab 中,并编写合适的Matlab程序实现对模型的测试。
1) 人口总数预测
根据改经的模型,我们得知状态方程(k)中,
在我国人口问题上,假设一个育龄期内各年龄组女性的生育率不随时间变化,那么:
即
利用2002年的人口统计数据,我们就可以用离散双线性模型来预测我国的人口在未来若干年的增长情况了。
① 可利用外推得死亡率公式:
② 生育模式用
③
假定我国目前得
短期预测到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('城市人口','镇上人口','乡村人口');