中国人口增长预测_数学建模(15页).doc
-中国人口增长预测_数学建模-第 15 页高教社杯全国大学生数学建模竞赛承 诺 书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。我们参赛选择的题号是(从A/B/C/D中选择一项填写): 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 参赛队员 (打印并签名) :1. 2. 3. 指导教师或指导教师组负责人 (打印并签名): 日期: 年 月 日赛区评阅编号(由赛区组委会评阅前进行编号):高教社杯全国大学生数学建模竞赛编 号 专 用 页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):中国人口增长预测摘要中国乃泱泱人口大国,人口规模是城市规划和土地利用总体规划中一项重要的控制性指标,预测人口模型的合理性,不仅影响到未来地区经济和社会发展,而且会影响到地区生态环境可持续发展。 因此,建立合理的模型,准确地预测未来人口的发展趋势,制定合理的人口规划和人口布局方案具有重大的理论意义和现实意义。对此,本文通过建立适当的模型,预测出了短期和中长期(到2050年)中国人口的变化趋势和走向,并给出了在这段时间内人口结构的具体预测数据和曲线走向,包括总人口数、年龄结构、出生率和死亡率等。在此模型中,为精确预测,我们用到了人口密度、生育率、死亡率、人口总数以及迁出率等影响人口的因数,并将我国人口整合为一个由城市男性、城市女性、城镇男性、城镇女性、乡村男性、乡村女性组成的1x6的矩阵。同时用人口密度、生育率、死亡率及迁出率作为参数并结合人口发展偏微分方程,再通过完善和改进,建立了一个一阶偏微分方程的模型。最后以此模型作为基础,进行人口数据的相关预测。对于求解一阶偏微分方程模型中的相关参数,我们首先用MATLAB和EXCEL等软件对题目所给的2001年到2005年的数据进行处理和适当筛选。在求解生育率时,通过用MATLAB的曲线拟合工具箱,经处理和比较,最后选取了高斯分布作为建立求解生育率的模型,合理而精确;在求解死亡率时,用EXCEL软件作出了各年各年龄段的折线图,为使模型更加精确和实际,通过观察我们把年龄分为三段,用分段函数概念,分别求解这三段的死亡率,其中在求解第三段(衰老期)时,使用了指数函数模型;在求解迁出率时,考虑城镇化进程对我国人口分布的影响,我们对复杂因素适当简化,建立了理想化的迁出率子模型。在所有参数求到之后,剩下的就是求解模型中的一阶偏微分方程,对此,我们对数据进行离散化处理,化偏微分方程为差分方程,运用计算机模拟的方法预测出相关数据,在这个过程中我们用MATLAB编程实现。把通过该模型预测出的结果与国内外专家、学者预测的数据作对比,其在定性趋势与定量分析上的结果基本一致,模型可信度较高。最后,在模型改进中迁出率用阻滞增长模型优化。利用MATLAB中Curve Fitting Tool拟合出城市化率增长模型,进而用相邻城市化率相减即得迁移率矩阵。此方法求出的迁移率更为精确,使预测结果更为准确。关键词: 人口发展偏微分方程 MATLAB曲线拟合 阻滞增长模型 方程离散化求解 高斯分布一、问题重述中国是一个人口大国,人口问题始终是制约我国发展的关键因素之一。根据已有数据,运用数学建模的方法,对中国人口做出分析和预测是一个重要问题。近年来中国的人口发展出现了一些新的特点,例如,老龄化进程加速、出生人口性别比持续升高,以及乡村人口城镇化等因素,这些都影响着中国人口的增长。2007年初发布的国家人口发展战略研究报告(附录1) 还做出了进一步的分析。关于中国人口问题已有多方面的研究,并积累了大量数据资料。附录2就是从中国人口统计年鉴上收集到的部分数据。试从中国的实际情况和人口增长的上述特点出发,参考附录2中的相关数据(也可以搜索相关文献和补充新的数据),建立中国人口增长的数学模型,并由此对中国人口增长的中短期和长期趋势做出预测;特别要指出你们模型中的优点与不足之处。二、问题分析本题是一个人口发展预测的问题。人口发展与一般种群增长一样,是由自然增长率决定的。然而,人类个体是一种社会的个体,所以人口发展有自己的特点。想到人口的迁移,性别比例,城镇化等。同时,人口发展受政策的影响,例如计划生育;也要受到人们意识的影响,像生育意识等。但是从社会层面上看,生育意识在整个社会上体现为妇女的生育模式,进而可以特别地去考虑。首先,数据的处理。在经过EXCEL分析和验证后,适当修正题中的个别有误数据后,利用有效数据进行建模求解,在此过程中,我们提取出死亡率、生育率等感念,且把人的一生按年龄分为青年期、衰老期等阶段。这是求解人口增长模型的必要过程和方法。其次,模型建立。和一般的预测模型一样,本模型也是个预测模型,所以考虑到用题目所给的五年的信息,来推测今后几十年的人口的总数和结构情况。对此,我们选用差分方程模型和数据参数拟合等方法。同时,将死亡率与出生率分开分别计算和拟合,通过五年的实际数据拟合出相应函数的参数,再利用此函数进行评估和预测。 最后,利用已有信息以及上述所求出的对应函数和方程,对中短期与长期进行估计和预测,进而得出人口结构、人口比例、人口数量等一系列的相关数据。三、符号说明: 表示最大的年龄;i=1,2,3,4,5,6 其中 1表示市男性,2表示市女性, 3表示镇男性,4表示镇女性, 5表示乡男性,6表示乡女性;A :表示婴儿性别比例矩阵;* :表示点乘; :表示t时刻年龄为x的人口数量; :表示t时刻年龄为x的出生率; :表示t时刻年龄为x的死亡率; :表示t时刻婴儿的死亡率; :表示t时刻年龄为x的人口迁出率;四、模型假设1. 假设国内社会环境稳定,无异常大量死亡或出生情况发生,人口比例,人口总数不会出现突变状况;2. 假设只存在乡向城镇迁出,不存在其他迁移方式,且不同年龄段迁移率相同;3. 假设不考虑国家之间的迁入与迁出,把中国内部看为一个封闭的模型;4. 对于90岁以上的人都按照90岁处理;5. 假设只存在乡向城镇迁出,不存在其他迁移方式,且不同年龄段迁出率相同,按照0.6%均匀增长。五、模型建立1.首先为了求解方便,建立了人口数量的向量,死亡率向量,出生率向量,迁移率向量和新生婴儿死亡率向量(以下的符号量见符号说明):2.由已有的人口模型可知:+ =tra(x,t)+dea(x,t)*P(x,t)使 0, 0,则可得:tra(x,t)+dea(x,t)*P(x,t)又由1994到2005年的城镇乡点的男女出生比例求平均值可得婴儿出生比例的矩阵A,即:最后结合条件可得人口微分模型: (1)将其转化成差分方程可得:为了求解上述方程,则只需已知出生率,死亡率,迁移率的值,在模型求解中给出了其具体求解的方法。六、模型求解 一、 死亡率的求解由不同阶段导致死亡的因素不同,我们将其分成了3个阶段婴儿期,青年期和老年期,然后对其分别求解。1衰老期死亡率求解我们通过matlab曲线拟合工具箱进行回归分析和数据拟合,经过试验,可以得到指数函数是最理想的,用matlab分别作出城男、城女,镇男、镇女、乡男、乡女衰老期的死亡率散点图及拟合曲线如下:城男性人口死亡率拟合曲线图 城女性人口死亡率拟合曲图镇男性人口死亡率拟合曲线图 镇女性人口死亡率拟合曲图 乡男性人口死亡率拟合曲线图 乡女性人口死亡率拟合曲图 经过分析和处理可得最终的参数拟合值如下表:衰老期的死亡率拟合级别市镇乡性别男女男女男女a0.08280.00140.046460.0803280.027440.02333b0.10160.14870.0985360.1042240.097230.1020于是衰老期的死亡率可以表示为:(与t无关)2. 青年期死亡率求解有其数据可以发现其死亡率与时间几乎没有相关性,故对其求平均值可得其死亡率如下表: 青年期死亡率平均数级别市镇乡性别男女男女男女2001年1.16520.74191.13180.641.6680.992002年0.89330.76961.04520.32271.8031.182003年0.88400.63531.14390.71021.6251.152004年0.79370.79920.81590.65771.5470.932005年0.87960.65111.13521.19771.8140.93平均值0.92320.71941.05440.706021.69141.0363. 婴儿期死亡率求解有附表的数据观察可知,不管男性还是女性,在婴儿期(即零岁)的死亡均比较高,远远高于青年期的死亡率,故不能将其纳入青年期的求解中,应单独对其进行求解。通过对2001年到2005年的数据进行分析,可以发现婴儿期死亡率没有明显的趋势变化,且每一年都相对比较稳定,因此对其求平均值,如下表:婴儿期死亡率平均数级别市镇乡性别男女男女男女平均值6.15526.3446.410.9919.3123.936二、 生育率的求解:对于2001年到2005年的数据,我们通过matlab曲线拟合工具箱进行回归分析和数据拟合,经过试验比较,我们得到高斯函数是最理想的,由MATLAB做出的城镇乡出生率的散点图和曲线拟合线图如下: 市人口出生率拟合曲线图镇人口出生率拟合曲线图乡人口出生率拟合曲线图通过MATLAB对2001年到2005年的数据分别拟合,可得2001年到2005年的拟合参数值,如下表:生育率函数拟合级别市镇乡参数a1b1c1a1b1c1a1b1c12001127.425.954.198150.425.154.151182.324.644.6212002113.525.984.617148.424.764.292177.224.654.924200311.3625.494.51915.5524.454.49517.4724.35.1432004123.625.634.578147.124.794.926167.124.465.463200595.8525.485.267134.724.124.996154.924.335.80平均值115.08725.7064.636147.224.714.572154.7624.4765.190 由于2003年的数据出现异常,故在计算平均值的时候将其舍去,而又通过观察可知市的a1,b1,c1和镇乡的b1,c1都比较稳定,无特别的变化趋势,故取平均值,但镇乡的a1有一个递减的趋势,可用MATLAB拟合函数求解,如下:建立函数(表示时间),再用MATLAB工具箱曲线拟合可得参数和:镇:,即乡:,即于是分别得到市镇乡生育率的方程如下: 三、 迁出率的求解改革开放以来,中国城市化进程明显加快,现阶段已进入到高速城市化的起飞线上。城市化进程中比较显著的变化就是大量人口从乡村转移到城镇,而城镇与乡村人口在出生率、死亡率等因素上又存在显著差异,故而由城市化引起的人口迁移在分析人口增长时是不可或缺的因素。人口各年迁出率并无数据可用,且迁出率数据直接计算并不可行,而各年中国城市化率的数据较容易得到,经查阅资料知各年城市化率,且知中国城市化进程将会在2050年趋于饱和,届时城市化率将达到极值70%。为简化模型,此处我们用平均迁出率作为每年的迁出率,即有:七、模型结果及其分析把模型求解中所求出的具体参数死亡率、生育率、迁出率带入到已建立好的模型中(模型建立中的表达式(1),对此方程进行离散化求解,化为差分方程,然后用MATLAB编程(程序见附录),最后得出结果,现整理如下:1. 人口总量预测通过MATLAB编程,计算得到的2006年到2050年的全国人口总量的预测列表如下:人口数量预测表(单位:十亿)年份人数年份人数年份人数年份人数年份人数20061.321120151.398920241.456720331.443120421.400020071.332120161.420020251.457920341.440120431.392020081.339020171.429820261.458720351.435220441.390020091.352020181.430120271.459120361.431520451.379820101.359820191.438120281.453420371.425420461.372020111.365820201.443420291.452120381.421920471.371220121.365720211.448620301.453120391.417020481.370220131.382520221.452620311.449920401.412020491.370120141.393520231.455620321.446520411.410020501.3723绘制人口趋势图如下:人口数量预测图从图中可以得出以下结论:(1) 中短期预测:中短期中国人口仍将呈上升趋势,人口总量将在2028年达到最大值14.6亿左右;(2) 长期预测:人口总量将在2028年达到峰值后开始缓慢下降,并将在2050年达到13.7亿后趋于稳定。2. 城镇化比例预测趋势由城镇化简化模型较易绘出如下的城市化进程趋势图:从图中可以看出,自2006年始,中国城市化率以固定速度上升,在2050年达到峰值。中短期和长期的城市化变化率相同,这显然与实际不符,此处我们将在后面的模型改进中进行优化。3. 人口老龄化趋势预测由模型得到的人口分布矩阵可计算出我国未来65岁及以上人口变化趋势数据,如下表:老龄人口(65岁及以上)结构中长期预测年份201020152020202520302035304020452050老龄化例%8.719.8210.6512.0114.5617.5719.5320.1020.45由上表可得结论:(1) 中短期预测:若按65岁以上的人口达总人口7%即进入“老龄化社会”、超过14%为“老龄社会”(联合国新标准)算,中国在2010年或者更早一些已经步入人口老龄化社会,在2030年步入老龄社会,人口老龄化增长趋势越来越快;(2) 长期预测:人口老龄化问题进一步加剧,增速逐渐放缓,在2050年达到峰值20.45%并趋于稳定。届时人口老龄化问题将会成为我国面临的重大问题! 以上给我们的启示是,人口老龄化将会在未来严重制约我国的可持续发展,当前我们亟需要解决的问题是如何阻止人口老龄化问题的进一步加剧。4. 性别比例预测将模型得到的人口分布矩阵中男女分别求和,此处只将2050年全国男女人口计算出,得到男女比例为1.114:1,这样我们可以看出届时性别比失衡问题将十分突出。因此,现阶段,我们必须严格控制出人口的性别比例。八、模型改进1.迁出率改进中国在2005-2050年间社会、经济处于高速发展阶段,对迁出率影响较大的诸多因素也处于不断提升时期,但随着时间的推移,这些因素对于迁出率的影响会越来越小,直至2050年,影响消失,各类人口迁出率为零,人口迁移现象消失。即迁出率并不是一个恒定不变的数值,其变化符合人口的阻滞增长模型洛杰斯蒂克(Logistic)模型在Logistic 模型中对应第 年的人口总数,、 分别对应初始时刻人口数和年份,而对于此处城市化阻滞发展模型,、分别对应第 年的城市化率、初始时刻城市化率和初始年份。为简化起见,此处将、 分别替换为、,既得简化模型: 用Matlab拟合得到模型的图形如下:由拟合曲线可知,每年的各类人口迁移率即为下一年城市化率减此年城市化率,即:九、模型优缺点模型优点:1. 从数据处理上看,该模型在建立生育率子模型时,通过MATLAB曲线拟合图形,对比五年的图像趋势,发现了2003 年的异常点并将其剔除,排除了错误信息的干扰,并且运用MATLAB 工具箱进行了回归分析,得出的参数均在95%的可信区间之内。2. 在整体结构上,该模型通过构建人口发展的一阶偏微分方程模型进行求解,且在模型中运用到了处理人口问题的生育率、死亡率、迁移率等三个子模型,整体上结构严密,条理清晰。3. 在处理众多数据的时候,把总的人口分为了六类:城男、城女、镇男、镇女、乡男、乡女,并建立了1x6的一个人口矩阵,通过这种处理,可以轻易从模型中得到不同类型人口的生育率、死亡率及总人数变化趋势等重要数据,方便而适用。4. 在求解死亡率子模型时,考虑到人类的死亡规律,为使模型更加精细准确,将人口的死亡率分成了三段,分别进行处理,且在此过程中用到了指数函数模拟分布,使结果更加精确。5. 在模型改进中,运用了符合人口的阻滞增长模型洛杰斯蒂克(Logistic)模型,用Matlab中Curve Fitting Tool拟合出城市化率增长模型,此方法求出的迁移率更为精确,使预测结果更为准确。模型缺点:1. 在模型参数求解过程中,为简化模型,有的数据进行了简化处理,忽略了一些参数的变化,这必定会损失一些精度。比如用平均迁出率作为每年的迁出率进行计算,没有考虑不同年龄段迁出率的相同,这样势必会导致与实际情况所差异。这也是模型的不足之处。2. 在处理死亡率的过程中,为简化模型,没有考虑时间对死亡率的影响,而在实际生活中,随着社会的发展,我们的医疗设备、医疗服务、人们生活水平等外部环境的不断完善和提高,则人们在某一个年龄段的死亡率也会随着这些因数的变化而变化,即时间对死亡率是有某种影响的。3. 为达到简化模型的目的,在假设中我们主观的对人口迁移进行了简化处理,在实际中人口迁移中这些假设都不成立,以后在更多可用数据的支持下,这些对人口数量有影响但影响甚微的因素都应该考虑进。十、参考文献1 赵东方,数学模型与计算M, 北京:科学出版社,2006年9月2 何晓群,刘文卿. 应用回归分析M. 北京: 中国人民大学出版社, 2001 年3 姜启源,谢金星,叶俊. 数学模型M. 北京: 高等教育出版社, 2003 年4 周义仓,赫孝良,数学建模实验M. 西安交通大学出版社,2007年2月5 韩中庚,数学建模方法及其应用M. 北京: 高等教育出版社,2008年12月6 费培之. 数学模型实用教程M. 成都: 四川大学出版社, 2004 年7 国家人口发展战略研究报告OL.,2007.9.23电气08-2班 高巧梅 王福凯 李海洪附录主程序:pnum=zeros(91,6); %六种人口的年龄人数s=zeros(50,1); %每一年的总人数s(1)=1307560000; %05年总人口数sk=zeros(6,1); %六种类型分别的人口总数nvb=0.528;0.472;0.541;0.459;0.545;0.455; %男女比例agerat=zeros(91,6); %六种人口的年龄组成比例rat=0.277168;0.277168;0.1713;0.1713;0.5516;0.5516; %城镇乡男女分别占总人口的比例agerat=0.46 0.4 0.56 0.48 0.65 0.54 0.46 0.39 0.58 0.47 0.65 0.51 0.41 0.34 0.55 0.44 0.65 0.51 0.45 0.39 0.58 0.47 0.65 0.51 0.49 0.42 0.61 0.51 0.7 0.56 0.51 0.43 0.66 0.54 0.71 0.58 0.48 0.42 0.62 0.52 0.7 0.58 0.53 0.46 0.7 0.58 0.78 0.64 0.53 0.47 0.72 0.59 0.78 0.66 0.56 0.48 0.72 0.61 0.81 0.68 0.6 0.53 0.81 0.69 0.91 0.78 0.58 0.52 0.77 0.66 0.86 0.74 0.61 0.54 0.85 0.73 0.97 0.85 0.62 0.55 0.88 0.76 1 0.89 0.65 0.58 0.95 0.83 1.11 0.98 0.75 0.69 1.08 0.96 1.23 1.1 0.79 0.74 0.98 0.89 1.06 0.95 0.8 0.79 0.88 0.82 0.86 0.78 0.88 0.92 0.85 0.8 0.82 0.74 0.77 0.81 0.64 0.61 0.63 0.58 0.69 0.74 0.52 0.51 0.53 0.53 0.69 0.76 0.47 0.53 0.49 0.52 0.73 0.78 0.51 0.57 0.49 0.54 0.86 0.94 0.62 0.72 0.58 0.62 0.76 0.81 0.58 0.67 0.53 0.56 0.73 0.79 0.59 0.67 0.52 0.57 0.79 0.85 0.68 0.74 0.55 0.57 0.79 0.84 0.68 0.74 0.54 0.57 0.76 0.8 0.67 0.72 0.53 0.54 0.84 0.88 0.76 0.81 0.59 0.61 0.87 0.9 0.81 0.86 0.64 0.65 0.94 0.96 0.88 0.94 0.7 0.74 1 1.02 0.94 0.97 0.74 0.77 1.04 1.04 0.98 1.01 0.78 0.82 1.08 1.06 1.01 1.06 0.83 0.86 1.15 1.13 1.13 1.14 0.92 0.98 1.04 1.03 1.03 1.06 0.86 0.92 1.11 1.12 1.14 1.15 0.97 1.03 0.84 0.84 0.89 0.91 0.82 0.87 0.96 0.94 1.01 1.06 0.92 0.97 1.03 0.99 1.07 1.06 0.93 0.97 1.04 1.01 0.99 1.01 0.86 0.91 1.28 1.22 1.18 1.19 1.01 1.04 0.91 0.87 0.87 0.87 0.78 0.82 0.53 0.52 0.45 0.47 0.42 0.45 0.71 0.68 0.57 0.59 0.54 0.55 0.63 0.61 0.55 0.53 0.5 0.5 0.79 0.77 0.7 0.68 0.68 0.67 0.85 0.83 0.79 0.78 0.8 0.78 0.75 0.76 0.7 0.71 0.72 0.74 0.8 0.79 0.78 0.76 0.83 0.8 0.79 0.8 0.73 0.74 0.8 0.77 0.69 0.71 0.68 0.67 0.76 0.74 0.68 0.7 0.68 0.69 0.77 0.74 0.59 0.59 0.57 0.58 0.65 0.63 0.58 0.59 0.57 0.57 0.66 0.63 0.56 0.57 0.56 0.54 0.65 0.59 0.47 0.49 0.46 0.46 0.55 0.52 0.46 0.47 0.47 0.46 0.55 0.51 0.42 0.43 0.43 0.42 0.49 0.47 0.39 0.4 0.42 0.41 0.49 0.46 0.36 0.38 0.38 0.36 0.46 0.41 0.34 0.35 0.35 0.34 0.42 0.39 0.34 0.36 0.34 0.34 0.4 0.37 0.35 0.36 0.35 0.32 0.41 0.36 0.34 0.37 0.34 0.35 0.41 0.38 0.3 0.32 0.27 0.27 0.33 0.3 0.33 0.35 0.31 0.3 0.37 0.33 0.32 0.32 0.3 0.29 0.35 0.32 0.31 0.32 0.27 0.29 0.33 0.32 0.3 0.32 0.28 0.29 0.34 0.33 0.27 0.28 0.24 0.25 0.28 0.29 0.28 0.28 0.25 0.26 0.3 0.3 0.23 0.24 0.21 0.22 0.25 0.26 0.21 0.2 0.18 0.19 0.22 0.24 0.21 0.21 0.19 0.2 0.23 0.25 0.16 0.17 0.15 0.17 0.17 0.2 0.16 0.17 0.14 0.17 0.17 0.2 0.13 0.15 0.12 0.15 0.15 0.18 0.11 0.12 0.1 0.12 0.12 0.15 0.1 0.12 0.1 0.13 0.12 0.16 0.08 0.1 0.08 0.1 0.1 0.13 0.07 0.09 0.07 0.09 0.08 0.11 0.06 0.08 0.05 0.08 0.07 0.1 0.05 0.07 0.05 0.07 0.05 0.08 0.04 0.06 0.03 0.06 0.04 0.07 0.03 0.04 0.02 0.05 0.03 0.05 0.02 0.03 0.02 0.04 0.02 0.04 0.02 0.03 0.01 0.03 0.02 0.03 0.01 0.02 0.01 0.02 0.01 0.03 0.03 0.07 0.03 0.07 0.03 0.08/100; for y=2:50 %对时间(年)进行循环 for k=1:6 %对六类人口进行循环 for i=1:91 %对年龄进行循环 pnum(i,k)=s(y-1)*rat(k)*agerat(i,k); end %pnum m=zeros(91,91);for i=1:91 m(1,i)=bir(i-1,y,k)*live(k)/1000000*nvb(k);endfor i=1:91 m(i+1,i)=1-dea(i-1,k)/1000;end%m%agerat end a=m*pnum; %每一类人各年龄的人口sk=s