人口模型预测数学建模作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上传是为了分析数学的乐趣,请粘贴复制的时候也多思考哈。为了更多的学子们
2014 年数学建模论文
第二套
题目:人口增长模型的确定
专业、姓名:土木135
提交日期:2015/7/2 晚上
题目:人口增长模型的确定
摘要
对美国人口数据的变化进行拟合,并进行未来人口预测,在第一个模型中,考虑到人口连续变化的规律,用微分方程的方法解出其数量随时间变化的方程,用 matlab 里的 cftool 工具箱求出参数,即人口净增长率 r=, 对该模型与实际数据进行对比,并计算了从 1980年后每隔10 年的人口数据,与实际对比,有很大出入。因此又改进出更为符合实际的阻滞增长模型,应用微分方程里的分离变量法和积分法解出其数量随时间变化的方程,求出参数人口增长率r=和人口所能容纳最大值 x m =, 与实际数据对比,拟合得很好,并预测出 1980年后每隔 10 年的人口数据,与实际对比,比较符合。为了便于比较两个模型与实际数据的描述情况作对比,又做出了两个模型与实际数据的对比图,以及两个模型的误差图。
关键词:人口预测微分方程马尔萨斯人口增长模型阻滞增长模型
一、问题重述
1790-1980 年间美国每隔 10 年的人口记录如下表所示
表 1 人口记录表
试用以上数据建立马尔萨斯 (Malthus) 人口指数增长模型,并对接下来的每隔十年预测五次人
口数量,并查阅实际数据进行比对分析。
如果数据不相符,再对以上模型进行改进,寻找更为合适的模型进行预测。
二、问题分析
由于题目已经说明首先用马尔萨斯人口增长模型来刻划,列出人口增长指数增长方程并求解,并进行未来 50 年内人口数据预测,但发现与实际数据有较大出入。考虑到实际的人口增长率是受实际情况制约的,因此,使人口增长率为一变化的线性递减函数,列出人口增长微分方程,求出其方程解,并预测未来五十年内人口实际数据。
三、问题假设
1. 假设所给的数据真实可靠 ;
2. 各个年龄段的性别比例大致保持不变
3. 人口变化不受外界大的因素的影响;
4. 马尔萨斯人口模型
( 1)单位时间的人口增长率 r 为常数; (2)将 x(t) 视为 t 的连续可微函数。
5. 改进后的模型(阻滞增长模型)
(1) 人口净增长率 r 为变化量。
四、变量说明
x(t) t 时刻的人口数量
x 1790
初始时刻的人口数量 r 人口净增长率 x m 环境所能容纳的最大人口数量,即 r(x m ) 0
五、模型建立
1.马尔萨斯人口增长模型
t=1790 时的人口数为 x 1790 , 在 t 到 t+Δt 这一时间间隔内,人口的增长为
则得到可建立含初始条件的微分 方程 x'(t) =rx(t) , x(1790) x 1790 =(省略 10^6)
其解为 x(t) x1790e
r (t 1790)
2.阻滞增长模型 假设人口增长生长率为人口 x(t) 的线性递减函数,即 x m 。 假设自然资源和环境条件所能承受的最大人口容量为
x m ,显然,当 x x m 时, r(x m ) r xr m 0。所以 s r /r m 。因此有
r(x) r rx / r m 。于是建立下列微分方程 x'(t) r(1 x(t))x(t) ,
x m
11 x(1790) 3.9。把上式化为 ( )dx rd(t 1790)。分离常 x x x m
x m
m i 于 由 ) t ( x
数并积分得到:x m。
x m r(t 1790)
1 ( 1)e
x1790
六、模型求解
1. 马尔萨斯模型求解
参数估计 :r 可以用实际数据的线性最小二乘法求解,对于x(t) x1790e r (t 1790),直接求解是比较麻烦的,因此在两边取对数,即lnx(t) ln x1790 r(t 1790) ,记lnx(t) y ,ln x1790 ln3.9 1.36 =a。则原方程化为 (x) = *exp(r*(t-1790)) 。利用 1790 —1900 年的数据进行拟合,得到 r=. 所以也能求出方程程序见附录 1。但本题还可以应用matlab 里的 cftool 工具箱求参数,在命令行中输入得到更精确的解:
General model:
f(x) = *exp(r*(t-1790))
Coefficients (with 95% confidence bounds):
r=,
得到如图所示结果,其中蓝线表示马尔萨斯人口模型预测人口数据,正方形黑点表示实际人口数据。
图 1. 马尔萨斯人口模型与实际人口数据
则每隔 10 年预测人口为 : x1990 332.1 , x2000 412.8 , x2010 517.7, x2020 646.5, x2030 799.3 ,然而查阅相关年份美国实际人口数据, 1990年为百万, 2000年为百万,2010年为百万。对于 2020年和 2030年实际还没有统计,因为没有发生,但通过前三个数据就可以看出马尔萨斯模型预测人口与实际有很大出入,所以必须对该模型做出改进,得到更符合实际的预测模型。
2. 阻滞增长模型求解
通过对x '(t )求导得拐点在x x m / 2时,人口增长速度最大。在问题分析已经得到
该模型的表达式,运用 matlab 里的 cftool 工具箱拟合求出参数 General model:
f(x) = a*+*exp(-r*(t-1790)))
Coefficients (with 95% confidence bounds):
模型预测数据,黑点表示实际人口数据 图 2. 组织增长模型预测数据与实际人口数据
根据该方程预测得到 x 1990 , x 2000 , x 2010 , x 2020 , x 2030 .其中 1990, 2000,2010 年这三年的预测人口数斗鱼实际人口数据很接近。但还是有一定的误差,模 型也存在一定的改进程度才能更符合实际情况。但从图形看,与实际拟合的很好。
3. 为了便于比较两种模型与实际数据的直观对比, 编出程序附录 2把他们放在一个坐标 系里。
图 3. 两个模型与实际人口数据的对比
图形虽然直观,但不具体,因此应算出两种模型与实际的误差值比较,程序见附录 3. 得到下图。
图 4. 马尔萨斯模型与阻滞增长模型误差的比较 从图中可以看出阻滞
增长模型的误差更小。
七、结果分析
1. 马尔萨斯模型结果分析
则 每 隔 10 年 预 测 人 口 为 : x 1990 332.1 , x 2000 412.8 , x 2010 517.7, x 2020 646.5, x 2030 799.3 ,然而查阅相关年份美国实际人 口数据, 1990年为百万, 2000年为百万, 2010年为百万。对于 2020年和 2030年实际 还没有统计,因为没有发生,但通过前三个数据就可以看出马尔萨斯模型预测人口与实 际有很大出入,所以必须对该模型做出改进,得到更符合实际的预测模型。
2. 阻滞增长模型结果分析
根据该方程预测得到 x 1990 , x 2000 , x 2010 , x 2020 , x 2030 . 其中 1990
年实际人口为百万, 2000 年为百万, 2010 年为百万,这三年的预测人口数与实际人口 因此 x 285.9 285.9 3.9 1)e 0.02858( t 1790) 并得到如下图, 蓝线表示组织增长