当前位置:文档之家› 人口增长模型的确定

人口增长模型的确定

人口增长模型的确定
摘要
人口增长模型对于人口的预测、环境评估、经济评价等方面有着很重要的作用,本文通过matlab对已有的数据进行拟合,分析,统计学计算,在前人的基础上做出马尔萨斯指数增长模型、logistic阻滞增长模型,再对这些模型进行对比分析,从而确定了我们所使用的logistic阻滞增长模型。

关键词:人口增长模型matlab 马尔萨斯指数增长模型logistic阻滞增长模型cftool 工具箱
一、问题重述
1790-1980年间美国每隔10年的人口记录如下表所示。

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

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

二、问题假设
1.假设随着时间的增长,人口数量是增加的。

2.假设在此期间,无重大自然灾害,传染病及战争因素影响。

3.假设每年影响人口数量的因素相同。

4.假设每年影响人口数量的作用强度和相同。

5.假设无迁入迁出影响。

三、符号说明
四、问题分析
根据所给的数据和题目要求建立马尔萨斯(Malthus)人口指数增长模型,那么我们直接建立马尔萨斯增长模型进行求解的结果与实际值相近,则说明所建立的模型是可行的。

否则进一步改进所给模型,寻找更优秀的模型。

(一)五、模型建立
马尔萨斯增长数学模型:马尔萨斯生物总数增长定律指出:在孤立的生物群体中,生物总数N(t)的变化率与生物总数成正比。

[1]其数学模型为
(1)
方程的解为
(2)
其中
用matlab 中cftool 工具箱进行指数拟合得到下图
图一
00()()d N rN dt
N t N ==⎧⎨⎩
0()
0()r t t N t N e -=001790, 3.9
t N ==
结果为: General model:
f(x) = 3.9*exp(b*(x-1790))
Coefficients (with 95% confidence bounds): b = 0.02222 (0.02163, 0.02281)
Goodness of fit: SSE: 8966 R-square: 0.9062
Adjusted R-square: 0.9062 RMSE: 21.72
可以看出,在95%的置信区间内我们得到的拟合方程参数b ,其R 相关系数为0.9062,拟合曲线基本吻合,整理之后可得马尔萨斯指数增长方程为
(2)
六、模型求解
将时间1990 2000 2010 2020 2030 分别带入方程中可得到预测值 经我们预测可得1990 2000 2010 2020 2030年的人口数量分别是 331.9474 414.5429 517.6900 646.5022 807.3656
1780
1800182018401860
188019001920194019601980
050
100
150
200
250
300
时间
人口数量
马尔萨斯指数增长拟合曲线
0.02222(1790)() 3.9t N t e -=
七、结果分析
我们将已经知道的1990 2000 2010 年的数据和预测数据进行对比在图上可以直观的看出两者偏差过大,经过进一步分析我们对模型进行进一步改进,原来的模型为指数增长模型,没有考虑到自然资源、环境条件等因素对人口的增长的阻力,人口增长率r 不应该是一个常数,而是一个随时间增长而减小的一个变量。

r 随着人口数量N 的增加而下降,这也就是logistics 模型由此我们建立第二个模型
(二)五、模型建立
对r(N)的一个最简单的假定是,设r(N)为N 的线性函数,即
(3)
设自然资源和环境条件所能容纳的最大人口数量
,当增长率,代入(3)式得

于是(3)式为
(4)
根据马尔萨斯建立的模型,我们可以得到(5)式:
(5)
将(4)带入(5)得:
(6) 即为logistic 阻滞增长模型[2] 解方程(6)可得:
(7)
()(0,0)r N r sN r s =->>m N m N N =()0
m r N =m
r
s N =
()(1)m
N r N r N =-
0(),(0)dN
r N N N N dt ==00(1)()m
dN
N rN dt N N t N ⎧=-⎪⎪⎨
=⎪⎪⎩
0()0
()1(
1)m
r t t m
N N t N e N --=
+-
此时我们知道
,只需求出,和r,
我们知道我们所做出的模型为‘S ’型分布,因此图像的最大斜率点即为中心对称点,我们确定了这个点之后,设这点的人口数量为就可以计算出:
(8)
我们用matlab 做出斜率变化图
图二
见附录
程序1:
001790, 3.9t N ==m N t N m N 0()
m t t N N N N =+-1800
1820184018601880
19001920194019601980
00.5
1
1.5
2
2.5
3

斜率
人口斜率变化曲线
从图中我们可以看出斜率最大为1960年,则有 由(8)式可得;
然后我们用matlab 中的lsqcurvefit 进行特定方程拟合求参数r ,见附录程序2: 可得到,r=0.0270,
此时可得到logistic 人口时间函数:
(9)
六、求解
将时间1990 2000 2010 2020 2030 分别带入方程中可得到预测值 经我们预测可得1990 2000 2010 2020 2030年的人口数量分别是 218.90705.0939 249.2931 261.4570 271.6675
七、结果分析
我们将两个模型和原始数据以及我们得到的1990 2000 2010年的数据绘在用一个坐标系上来观察模型效果见下图,matlab 程序见附录程序3:
179.3t N =354.7
m N =0.027(1790)
354.7
()189.9487t N t e --=
+
由上图我们可以明显看出logistic 阻滞增长模型要优于马尔萨斯指数增长模型,我们再计算出对两个模型与实际人口数量的和方差如下表:
表二:人口增长模型数据列表
0100
200
300
400500
600

人口数量
人口增长模型比较
(表中1990 2000 2010年人口数据来自美国普查局)
可以看出logistic模型和方差远远小于马尔萨斯模型,再次说明logistic模型要优于马尔萨斯模型。

八、参考文献
[1]. 刘焕彬,库在强,廖小勇,陈文略,张忠诚.数学建模与实验[M].科学出版社,2008:39
[2]. 王延臣,段俊生,王彦. 人口预报与LOGISTIC模型的改进[J]. 统计与决策.2006(22):136.
九、附录
程序1:
t=1790:10:1980;
N=[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 106.5 123.2 131.7 150.7 179.3 204 226.5];
for i=1:length(t)-1
k(i) = (N(i+1)-N(i))/(t(i+1)-t(i));
end
x=1800:10:1980;
plot(x,k)
xlabel('年')
ylabel('斜率')
title('人口斜率变化曲线')
grid on
程序2:
t=1790:10:1980;
N=[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 106.5 123.2 131.7 150.7 179.3 204 226.5];
f=@(r,t)354.7./(1+(354.7/3.9-1)*exp(-r.*(t-1790)));
lsqcurvefit(f,r,t,N)
程序3:
t=1790:10:2010;
N=[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 106.5 123.2 131.7 150.7 179.3 204 226.5 249.5 282.2 308.7];
N1=3.9*exp(0.02222*(t-1790));
N2=354.7./(1+(354.7/3.9-1)*exp(-0.027.*(t-1790)));
plot(t,N,'r*',t,N1,'--',t,N2);
xlabel('年')
ylabel('人口数量')
title('人口增长模型比较')
legend('已知数据','马尔萨斯增长模型','logistic阻滞增长模型') grid on。

相关主题