当前位置:文档之家› 人口模型预测数学建模作业

人口模型预测数学建模作业

上传是为了分析数学的乐趣,请粘贴复制的时候也多思考哈。

为了更多的学子们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) x1790er (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 m11 x(1790) 3.9。

把上式化为 ( )dx rd(t 1790)。

分离常 x x x mx mm i 于 由 ) t ( x数并积分得到:x m。

x m r(t 1790)1 ( 1)ex1790六、模型求解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) 并得到如下图, 蓝线表示组织增长数据很接近。

但还是有一定的误差,模型也存在一定的改进程度才能更符合实际情况。

但从图形看,与实际拟合的比较好。

八,模型的评价与推广Malthus 数学模型在短期内具有较好的准确度,简易易行,但是不能准确的预测处人口长期的发展趋势,不具有预测人口长期增长数量的能力。

为此,结合资料,考虑到一些实际因素,建立了能很好滴预测人口数量增长的 logstic 模型。

在人口增长的整个过程中 logistic 模型预测的数据与题中所给数据能很好地在误差范围内,几乎一致。

但由于也存在误差,因此也可以通过相关多项式拟合出其方程,也是可以的,比如二次多项式,但次数不一定越高越好,应使模型所预的数据与实际数据更接近,才是比较好的模型。

logistic 模型在人口预测中,在医疗卫生中可以预测寻找某一疾病的危险因素(以及疾病的发展趋势),预测自然界中种群数量的增长等都发挥着巨大的作用。

九、参考文献[1] 王玉英王建国史加荣鲁萍 . 数学建模及其软件实现北京:清华大学出版社 ,2015.[2] 赵凤群戴芳王小侠肖艳婷数学实验基础西安理工大学理学院2013十、附录程序 1 马尔萨斯模型的线性解法t0=[1790:10:1980];X0=[ ];plot(t,x, 'o' );n=1;a=polyfit(t0,x0,n);y=log(x);p=poly2sym(a)程序 2 人口数量实际值与两种模型预测数据对比图clear;t=[1790:10:1980];nx1=*exp.*(t-1790)); nx2=./ (1+*exp.*(t-1790)));plot(t,x, 'r' ,t,nx1, 'b' ,t,nx2, 'g' );legend( ' 实际值 ' , ' 马尔萨斯模型 ' , '? 阻滞增长模型 ' ) 程序 3 两种模型误差散点图x=[ ];clear; t=[1790:10:1980]; x=[ ];nx1=*exp.*(t-1790)); nx2=./(1+*exp.*(t-1790)));W1=(x-nx1)./x;W2=(x-nx2)./x; plot(t,W1, '*' ,t,W2, 'x' ); legend( ' 马尔萨斯模型误差 ' ,' 阻滞增长模型误差 ' )。

相关主题