关于人口增长的探究

  • 格式:doc
  • 大小:170.00 KB
  • 文档页数:11

关于人口增长的探究 一. 摘要: 人类社会自进入20世纪以来,随着科学技术和生产力飞速发展的同时,世界人

口也以空前的规模增长。认识人口数量的变化规律,建立人口模型,作出较为准确的预报,是有效控制人口增长的前提。本次建模是依照已知普查数据,利用指数增长模型、Logistic模型,对世界人口增长进行预测、美国1790-1900年人口增长率的确定及检验。首先假设人口增长指数增长符合模型,即引入常数 ,用来表示自然环境条件下年增长率r保持不变。利用表给出美国1790-1900年人口数据将时间分为三个阶段,分别计算出增长率r1、r2、r3,并检验与实际数据的差别。但是长期来看,任何地方的人口都不可能无限增长,即指数增长不能预测较长时期的人口演变过程。一般来说,当人口较少时,增长较快,即增长率较大:人口增长到一定数量后,增长就会慢下来,即增长率变小。因此假定人口的增长服从规律:时刻t的人口为x(t),t到t+t时间段内人口的增长

量与mx -x(t)成正比(其中为最大人口容量)。试建立模型并求解。作出解的图形并与指数增长模型、阻滞增长模型的结果进行比较。分析人口增长到一定数量后增长率下降的主要原因,自然资源、环境条件等因素对人口的增长起到阻滞作用,并且随着人口的增加,阻滞作用越来越大,即阻滞增长模型就是对指数增长模型的基本假设进行修改后得到的。 关键词:人口预测、指数增长模型、阻滞增长模型、最大容量

二.问题的提出: 1.1650年世界人口为5亿,当时的年增长率为0.3%,用指数增长模型计算什么时候世界人口达到10亿(亿实际上1850年前已超过10)。1970年世界人口为36亿,年增长率为2.1%,用指数增长模型预测什么时候世界人口会翻一番(这个结果可信吗)。你对同样的模型得出的两个结果有何看法? 2.美国790—1990年人口资料建立一个分段的指数增长模型。比如把时间分为3段,分别确定增长率,并进行检验。 3.假定人口的增长服从这样的规律:时刻t的人口为x(t),t到t+ t时间段内人口的增长量

与mx-x(t)成正比(其中为最大人口容量)。试建立模型并求解。作出解的图形并与指数增长模型、阻滞增长模型的结果进行比较。 三.问题的分析: 由题意可知,目的就是为了建立一种模型,根据已有数据的拟合,确定人口增长的增长率,从而预测人口数量问题,进而达到有效控制人口数量的目的。问题一中,首先认识人口数量的变化规律,建立人口与增长率之间的关系,因而顺理成章的利用已有的指数增长模型,预测两个小问中达到的时间段并比较分析。而问题二,根据数据分析可将美国1790-1990年的人口资料分为三个时间段,即1790-1860年、1860-1940年、1940-1990年,增长率分别为r1、r2、r3,算出预测的数据并与实际数据比较,进行检验。问题三,有题意可设该比例系数为k,同时利用微积分中分离变量法求解设的函数表达式以及最大人口容量。最后,根据网上提供的知识,再结合已学的数学软件知识绘制出相应的模型曲线,对指数增长模型、阻滞增长模型的结果进行比较。 四.建模过程 1) 问题一 1.模型假设:

在预测时,假设该增长符合指数增长模型:记今年人口为,k年后人口为0x,年增长率为r,

则0(1)kkxxr 2.定义符号说明:1kx——k1年后达到10亿 2kx——k2年后世界人口翻一番即72亿

1r——年增长率0.3% 2r——年增长率=2.1%

3.模型建立: 记今年人口为,k年后人口为0x,年增长率为r,则0(1)kkxxr 4.模型求解:根据步骤3的公式得

1kx=1101(1)kkkxxr

2202(1)kkkxxr

其中, 1kx=10 2kx=72 1r=0.3% 2r=2.1% 分别代入公式得: k1= 231 k2=34

2) 问题二 1. 基本假设: 根据所提出的问题分析可知基本假设如问题一的模型假设 2.定义符号说明: x(t): 时刻t的人口为x(t) dxdt : 单位时间内x(t)的增长量

r: 人口增长率为常数r

3.模型建立: 根据数据分析可将美国1790-1990年的人口资料分为三个时间段,1790-1860年、1860-1940年、1940-1990年,增长率分别为r1、r2、r3, 利用微积分,将x(t)视为连续、可微函数,记初始时刻(t=0)的人数为,假设一段时间内人口增长率为常数r,即单位时间内x(t)的增量等于r乘以x(t),于是得到x(t)满足微分方程:

0,(0)dxrxxxdt

0()rtxtxe 根据数据分析可将美国1790-1990年的人口资料分为三个时间段,1790-1860年、1870-1940年、1950-1990年,增长率分别为r1、r2、r3 4.模型求解: 结合数据和公式计算出r1= 0.0296905 r2=0.0158903 r3=0.0121781

表1 1790-1860年实际人口与预测人口 年 1790 1800 1810 1820 1830 1840 1850 1860

实际人口/百万 3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4

预测人口百万 4.0 5.4 7.2 9.8 13.1 18.0 24.3 32.2 表2 1870-1940年实际人口与预测人口 年 1870 1880 1890 1900 1910 1920 1930 1940 实际人口/百万 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7

预测人口/百万 39.1 52.6 67.5 80.3 94.8 110.4 131.6 140.3

表3 1790-1860年实际人口与预测人口 年 1950 1960 1970 1980 1990 实际人口/百万 150.7 179.3 204.0 226.5 251.4

预测人口/百万 156.4 174.2 202.7 224.5 268.7 3) 问题三 1. 模型假设:

假设人口的增长服从规律:时刻t的人口为x(t),t到t+t时间段内人口的增长量与mx -x(t)

成正比(其中mx为最大人口容量)。

2. 定义符号说明: r---比例系数 0x---最初的人口数量 3. 模型建立: 当人口数量的增长服从以下规律:时刻t的人口为x(t),t到t+t时间段内人口的增长量与mx

-x(t)成正比(其中为最大人口容量) ()()()xttxtrxtt (1)

0,(0)dxrtxxdt (2)

其中,r为比例系数 4. 模型求解: 从模型的建立(1) 、(2)可解得 0()()exp()mmxtxxxrt

指数增长模型曲线:

增量模型曲线: Logistic模型曲线: 五、参考文献 MATLAB程序设计与应用(第二版)

六、问题的解决

(1) 第一小问的结果和实际人口的误差不大,比较吻合。第二问的结果与实际的误差较大,因为该模型的结果说明人口将以指数规律无限制的增长,实际上随着人口的增长,自然资源,环境条件等因素对人口增长有限制作用,则当年的人口增长率随着人口的增长而减小。

(2) 由002rtxxe,可得当r不变时,人口数量增长一倍的时间是一个定值:2Intr (3) 图形比较:指数模型人口按几何级数增长,这个模型与现实不符合,因为人口的增长要受到自然条件等因素的约束。阻滞增长模型和增量模型,考虑了在大量的人口容量,当人口增长到一定程度时就会无限趋于人口最大容量,这与现实是符合的。阻滞增长模型和增量模型的区别是阻滞增长模型是用连续的方法讨论的,增量模型是直接用离散的方法讨论的。 七、附录 问题一的程序: syms t f='10-5*exp(0.003*t)'; solve(f,t);

syms t f='10-5*exp(0.021*t)'; solve(f,t);

增量模型的拟合代码 t=1790:10:1990; y=[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 251.4]; plot(t,y,'b*');

% 定义需要拟合的函数类型myfun(a,t),a是参数列表,t是变量 myfun = @(a,t)-(@(a,t)-a(1))[exp(a(2)*t)]; a0=[0.001,1]; % 初始值

% 非线性拟合.最重要的函数,第1个参数是以上定义的函数名,第2个参数是初值,第3、4个参数是已知数据点 a=lsqcurvefit(myfun,a0,t,y); disp(['a=' num2str(a)]); % 显示得到的参数

% 画出拟合得到的函数的图形 ti=1790:10:1860; yi=myfun(a,ti); hold on; plot(ti,yi,'r');

% 给图形加上图例 xlabel('年份'); ylabel('人口数'); legend('原始数据','拟合函数',2); box on; grid on;

指数增长模型的拟合代码 表1 t=1790:10:1860; y=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4]; plot(t,y,'b*');

% 定义需要拟合的函数类型myfun(a,t),a是参数列表,t是变量 myfun = @(a,t)[exp(a(1)*t+a(2))]; a0=[0.001,1]; % 初始值

% 非线性拟合.最重要的函数,第1个参数是以上定义的函数名,第2个参数是初值,第3、4个参数是已知数据点 a=lsqcurvefit(myfun,a0,t,y); disp(['a=' num2str(a)]); % 显示得到的参数

% 画出拟合得到的函数的图形 ti=1790:10:1860; yi=myfun(a,ti); hold on; plot(ti,yi,'r');

% 给图形加上图例 xlabel('年份'); ylabel('人口数'); legend('原始数据','拟合函数',2); box on; grid on;