全国大学生数学建模比赛论文中国人口预测模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国人口预测模型
摘要:人口数量的变化,关系到一个国家的未来。认识人口数量的变化规律,
建立人口模型,能够较准确的预报,是有效控制人口增长的前提。本文对人口预测的数学模型进行了研究。首先,建立人口指数模型、Logistic模型及灰度预测模型。对我国2005年以后45年的人口增长进行了预测,根据1982年人口基本数据运用模型对1982年~2005年进行了预测,并用实际数据对预测结果进行了检验。
我们将预测区间分为2006~2030年、2030~2050年两个区间,以量化未来我国短中期与长期的人口变化。
关键词:人口数量的变化人口指数模型 Logistic模型灰度预测模型MATLAB Excel
目录
第一部分问题重述 (3)
第二部分问题分析 (3)
第三部分模型的假设 (3)
第四部分定义与符号说明 (3)
第五部分模型的建立与求解 (3)
5.1模型一 (3)
5.2模型二 (8)
5.3模型三 (12)
第六部分对模型的评价 (14)
第七部分参考文献 (15)
第八部分附表 (15)
一、问题重述
人口问题始终是制约我国发展的关键因素之一。本题要求根据已知数据,运用数学建模的思想对我国人口做出分析和预测。具体问题如下:
从中国的实际情况和人口增长的特点,例如我国老龄化进程加快、出生人口性别比持续升高、乡村人口城镇化等,利用参考附录中所提供的数据,建立中国人口增长的数学模型,由此对中国人口增长的中短期和长期趋势做出预测,并指出模型的优缺点。
二、 模型假设
1、假设题目所给的数据真实可靠;
2、假设不考虑我国人口大规模的朝国外迁移,也不考虑外国人大量涌入我国;
3、假设不考虑战争、自然灾害、疾病对人口数目和性别比的影响;
4、假设在本世纪中叶前,我国计划生育政策稳定。
5、假设中短期内生育率和死亡率保持相对稳定
6、假设相同年龄段人口性别比基本稳定。
7、假设人口生育率不受传统观念和个人主观因素的影响。
三、符号说明
符号说明:由于符号较多,在以后的模型中具体给出
四、问题分析
人口发展过程的定量预测,需要预测出未来的人口发展趋势,人口出生、死亡和自然增长率的变化以及在未来的人口构成等各项人口指数全部测算出来。人口增长的决定因素为出生率、死亡率和人口基数,鉴于我国人口问题已有多方面的研究,我们针对近年来我国的人口发展出现的一些新特点,忽略国际人口流动,故可以认为我国人口为一个封闭的系统。对于封闭的系统来说 ,某时刻人口总量=人口基数+新生人口数—死亡人口数。
五、模型的建立与求解
5.1.模型一:指数增长模型[1] (一)、模型建立:
记t 时刻的人口数为()x t ,当考察一个国家的人口时,()x t 为一个人很大的整数。利用微积分这一数学工具,将()x t 看作一个连续、可微函数。记初始时刻(0t )的人口为0X .假设人口增长率为常数r ,即单位时间内()x t 的增量等于r
乘以()x t 。考虑到t 到t t +∆时间内人口的增量,显然有:
()()x t t rx t t +∆=∆ (5.1.1)
令0t →,得到()x t 满足微分方程 0,(0)dx
rx x x dt
== 于是()X t 满足微分方程:
0()
()(0)dx t rx t dt x X ⎧=⎪
⎨⎪=⎩ (5.1.2)
(二)、模型求解
解微分方程(5.1.2)得:
.()0()r t t X t X e -= (5.1.3) 表明:t →∞时,(0)t x r →∞> 1982年人口自然增长率为1.1%,011.98504X =
根据Malthus 模型,用Matlab 计算1994~2005各年的人口总数,程序: > t=[1982:1:2005]; t0=1982;
x=10.1654*exp(0.014*(t -t0)); >> x
计算结果 x =
Columns 1 through 11
10.1654 10.3087 10.4541 10.6014 10.7509 10.9025 11.0562
11.2121 11.3701 11.5304 11.6930
Columns 12 through 22
11.8578 12.0250 12.1946 12.3665 12.5408 12.7176 12.8969 13.0788 13.2632 13.4501 13.6398
Columns 23 through 24
13.8321 14.0271
用Matlab软件将计算值与实际人口数进行对比:
程序:
t=[1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005];
x=[101654 103008 104357 105851 107507 109300 111026 112704 114333 115823 117171 115817 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130628];
plot(t,x);
hold on
y=[101654 103087 104541 106014 107509 109025 110562 112121 113701 115304 116930 118578 120250 121946 123665 125408 127176 128969 130788 132632 134501 136389 138321 140271];
plot(t,y,'r*');
legend('实际值','预测值');
hold off
xlabel('年份');
ylabel('总人口数');
title('模型计算值与实际值对比');
grid;