文档库 最新最全的文档下载
当前位置:文档库 › 人口模型预测——数学建模作业

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

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

了更多的学子们。

2014年数学建模论文

第二套

题目:人口增长模型的确定

专业、姓名:土木135

提交日期:2015/7/2晚上

题目:人口增长模型的确定

摘要

对美国人口数据的变化进行拟合,并进行未来人口预测,在第一个模型中,考虑到人口连续变化的规律,用微分方程的方法解出其数量随时间变化的方程,用matlab里的cftool工具箱求出参数,即人口净增长率r=0.02222,对该模型与实际数据进行对比,并计算了从1980年后每隔10年的人口数据,与实际对比,有很大出入。因此又改进出更为符合实际的阻滞增长模型,应用微分方程里的分离变量法和积分法解出其数量随时间变化的方程,求出参数人口增长率r=0.02858和人口所能容纳最大值m x=258.9,与实际数据对比,拟合得很好,并预测出1980年后每隔10年的人口数据,与实际对比,比较符合。为了便于比较两个模型与实际数据的描述情况作对比,又做出了两个模型与实际数据的对比图,以及两个模型的误差图。

关键词:人口预测微分方程马尔萨斯人口增长模型阻滞增长模型

一、问题重述

1790-1980年间美国每隔10年的人口记录如下表所示。

表1 人口记录表

年份1790 1800 1810 1820 1830 1840 1850 1860 1870 1880

人口(?106) 3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2

年份1890 1900 1910 1920 1930 1940 1950 1960 1970 1980

人口(?106) 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 试用以上数据建立马尔萨斯(Malthus)人口指数增长模型,并对接下来的每隔十年预测五次人口数量,并查阅实际数据进行比对分析。

如果数据不相符,再对以上模型进行改进,寻找更为合适的模型进行预测。

二、问题分析

由于题目已经说明首先用马尔萨斯人口增长模型来刻划,列出人口增长指数增长方程并求解,并进行未来50年内人口数据预测,但发现与实际数据有较大出入。考虑到实际的人口增长率是受实际情况制约的,因此,使人口增长率为一变化的线性递减函数,列出人口增长微分方程,求出其方程解,并预测未来五十年内人口实际数据。

三、问题假设

1.假设所给的数据真实可靠;

2.各个年龄段的性别比例大致保持不变;

3.人口变化不受外界大的因素的影响;

4.马尔萨斯人口模型

(1)单位时间的人口增长率r 为常数; (2)将()x t 视为t 的连续可微函数。 5.改进后的模型(阻滞增长模型) (1)人口净增长率r 为变化量。

四、变量说明

()x t t 时刻的人口数量

1790x 初始时刻的人口数量

r 人口净增长率

m x 环境所能容纳的最大人口数量,即()0m r x =

五、模型建立

1.马尔萨斯人口增长模型

t=1790时的人口数为1790x ,在t 到t+Δt 这一时间间隔内,人口的增长为

()()()x t t x t rx t t +?-=?

由于0

()()

'()lim

t x t t x t x t t

→+-=V V V

则得到可建立含初始条件的微分方程'()x t =()rx t ,

1790(1790)x x ==3.9(省略10^6)

其解为(1790)1790()

r t x t x e -=

2.阻滞增长模型

假设人口增长生长率为人口()x t 的线性递减函数,即m x 。

假设自然资源和环境条件所能承受的最大人口容量为m x ,显然,当

m x x =时,

0()m m r x r xr ==-。所以/m s r r =。因此有

()/m r x r rx r =-。于是建立下列微分方程()

'()(1)()m

x t x t r x t x =-, (1790) 3.9x =。把上式化为11

()(1790)m

dx rd t x x x -

=--。分离常数并积分

得到:

(1790)

1790

1(1)

m

m

r t x x x e x --=

+-。

六、模型求解 1.马尔萨斯模型求解

参数估计:r 可以用实际数据的线性最小二乘法求解,对于(1790)1790()

r t x t x e -=,直

接求解是比较麻烦的,因此在两边取对数,即

1790ln ()ln (1790)x t x r t =+-,记

ln ()x t y

=,

1790ln ln3.9 1.36

x ===a 。则原方程化为(x) =

3.9*exp(r*(t-1790))。利用1790—1900年的数据进行拟合, 得到r=0.02142.所以也能求出方程程序见附录1。但本题还可以应用matlab 里的cftool 工具箱求参数,在命令行中输入得到更精确的解: General model:

f(x) = 3.9*exp(r*(t-1790))

Coefficients (with 95% confidence bounds): r=0.02222(0.02163,0.02281)

得到如图所示结果,其中蓝线表示马尔萨斯人口模型预测人口数据,正方形黑点表示实际人口数据。

图1.马尔萨斯人口模型与实际人口数据

则每隔

10

年预测人口为:

1990332.1

x =,

2000412.8

x =,

2010517.7x =,2020646.5x =,2030799.3x =,然而查阅相关年份美国实际人

口数据,1990年为248.7百万,2000年为281.4百万,2010年为307.0百万。对于2020年和2030年实际还没有统计,因为没有发生,但通过前三个数据就可以看出马尔萨斯模型预测人口与实际有很大出入,所以必须对该模型做出改进,得到更符合实际的预测模型。

2.阻滞增长模型求解 通过对'()x t 求导得拐点在/2m x

x =时,人口增长速度最大。在问题分析已经得到

该模型的表达式,运用matlab 里的cftool 工具箱拟合求出参数: General model:

f(x) = a*3.9/(3.9+(a-3.9)*exp(-r*(t-1790))) Coefficients (with 95% confidence bounds): a = 285.9 (257.4, 314.4) r = 0.02858 (0.02763, 0.02953) 因此0.02858(1790)

285.9

285.91(1)3.9

t x

e

--=

+- 。并得到如下图,蓝线表示组织增长

模型预测数据,黑点表示实际人口数据。

图2.组织增长模型预测数据与实际人口数据

根据该方程预测得到

1990x =230.92,2000x =242.51,2010x =252.02,

2020x =259.67,2030x =265.71.其中1990,2000,2010年这三年的预测人口数斗鱼

实际人口数据很接近。但还是有一定的误差,模型也存在一定的改进程度才能更符合实际情况。但从图形看,与实际拟合的很好。

3.为了便于比较两种模型与实际数据的直观对比,编出程序附录2把他们放在一个坐标系里。

图3.两个模型与实际人口数据的对比

1780

1800182018401860

188019001920194019601980

050

100

150

200

250

300

t/年份

x /数量百万

实际值

马尔萨斯模型预测

改进的马尔萨斯模型预测

图形虽然直观,但不具体,因此应算出两种模型与实际的误差值比较,程序见附录 3.得到下图。

图4.马尔萨斯模型与阻滞增长模型误差的比较

1780

1800182018401860188019001920194019601980

-0.2-0.1

0.1

0.2

0.3

0.4

0.5

马尔萨斯模型预测的误差阻滞增长模型预测的误差

从图中可以看出阻滞增长模型的误差更小。

七、结果分析

1.马尔萨斯模型结果分析 则每隔

10

年预测人口为:

1990332.1

x =,

2000412.8

x =,

2010517.7x =,2020646.5x =,2030799.3x =,然而查阅相关年份美国实际人

口数据,1990年为248.7百万,2000年为281.4百万,2010年为307.0百万。对于2020年和2030年实际还没有统计,因为没有发生,但通过前三个数据就可以看出马尔萨斯模型预测人口与实际有很大出入,所以必须对该模型做出改进,得到更符合实际的预测模型。

2.阻滞增长模型结果分析 根据该方程预测得到

1990x =230.92,2000x =242.51,2010x =252.02,

2020x =259.67,2030x =265.71.其中1990年实际人口为248.7百万,

2000年为281.4百万,2010年为307.0百万,这三年的预测人口数与实际人口数据很接近。但还是有一定的误差,模型也存在一定的改进程度才能更符合实际情况。但从图形看,与实际拟合的比较好。

八,模型的评价与推广

Malthus数学模型在短期内具有较好的准确度,简易易行,但是不能准确的预测处人口长期的发展趋势,不具有预测人口长期增长数量的能力。为此,结合资料,考虑到一些实际因素,建立了能很好滴预测人口数量增长的logstic模型。

在人口增长的整个过程中logistic模型预测的数据与题中所给数据能很好地在误

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

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

九、参考文献

[1]王玉英王建国史加荣鲁萍. 数学建模及其软件实现北京:清华大学出版社,2015.

[2]赵凤群戴芳王小侠肖艳婷数学实验基础西安理工大学理学院2013

十、附录

程序1马尔萨斯模型的线性解法

t0=[1790:10:1980];

X0=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];

plot(t,x,'o');

n=1;

a=polyfit(t0,x0,n);

y=log(x);

p=poly2sym(a)

程序2 人口数量实际值与两种模型预测数据对比图

clear;

t=[1790:10:1980];

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];

nx1=3.9*exp(0.02222.*(t-1790));

nx2=285.9./(1+72.31*exp(-0.02858.*(t-1790)));

plot(t,x,'r',t,nx1,'b',t,nx2,'g');

legend('实际值','马尔萨斯模型','?阻滞增长模型')

程序3 两种模型误差散点图

clear;

t=[1790:10:1980];

x=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5];

nx1=3.9*exp(0.02222.*(t-1790));

nx2=285.9./(1+72.31*exp(-0.02858.*(t-1790)));

W1=(x-nx1)./x;

W2=(x-nx2)./x;

plot(t,W1,'*',t,W2,'x');

legend('马尔萨斯模型误差','阻滞增长模型误差')

相关文档
相关文档 最新文档