问题分析

• 用数学建模预测人口增长的方法:差分方程、微分方程、回归分析、时间序列等.
• 结合所给数据以差分方程组的Leslie模型为基础.
• 考虑不同地区、不同性别人口参数的差别及农村人口向城市迁移等因素.
• 按照地区和性别建立以时间和年龄为基本变量的中国人口增长模型.
• 利用历史数据估计生育率、死亡率及人口迁移等参数,代入模型求解并作预测.

模型假设

•中国人口是封闭系统, 将数据中的市、镇合并为城市, 与农村(乡)作为两个地区; 只考虑农村向城市人口的单向迁移, 不考虑与境外的相互移民.
• 对中短期人口预测, 生育率、死亡率及人口迁移等参数用历史数据估计; 长期预测考虑总和生育率的控制、城镇化指数的变化趋势等因素.
• 女性每胎生育一个子女.

模型建立

中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_方程组


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_02


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_03

中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_04


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_方程组_05


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_06


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_方程组_07


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_方程组_08

按地区和性别划分、以年龄为离散变量、随时段演变的人口发展模型,为4n阶差分方程组.

中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_09

参数估计

中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_10

存活率的估计

死亡率与年龄关系大, 与地区、性别和时间的关系小.
中国几十年来死亡率降低较快, 未来趋势仍持续下降.

中短期预测:将过去若干年不同地区、性别和各年龄人口的死亡率简单地取平均值.

长期预测:用统计方法对历史数据加以处理,并参考发达国家人口死亡率的演变过程给出估计值.

生育率的估计

中短期预测:将过去若干年不同地区、性别和各年龄人口的生育率简单地取平均值.

长期预测:设定几个不同水平的总和生育率.

中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_11

人口迁移的估计

中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_历史数据_12


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_13

模型求解

选定初始年份用人口发展模型递推计算

中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_方程组_14


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_差分_15


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_历史数据_16


中国人口预测模型数学建模模型 python实现 2020中国人口模型数学建模_历史数据_17

MATLAB实现

clc;
%初始化,设置各种参数和初始人数矩阵
x = [206.46 422.50 478.72 229.92 53.44]';
%x0女性各阶段人数
%x0 = x .* 0.4988
x0 = [102.9822 210.7430 238.7855 114.6841 26.6559]';
%H为状态转移矩阵,其实是存活矩阵
H = zeros(5,5);
H(2) = 0.88; H(8) = 0.97; H(14) = 0.86; H(20) = 0.22;
%B是生育矩阵,即各个年龄段妇女的生育率
B = [0 2 0.3 0 0];

for n = 1:1:5
    %y是x之下一年的人口数目,尚不包括迁移人数和1岁的人数
    y = H*x;
    %y(1)是下一年1岁的人口数目,即今年刚出生的人
    y(1) = B*x0;
    %g是迁移人数,也得按照年龄比例来存储数据
    g = [30 120 120 20 10]';
    %迁移人数加到y上
    y = y + g;
    %求与y对应的年份的各个年龄段妇女人数
    %包括x0中存活下来的,迁移的一部分,第一时间段为刚出生的女性人数
    y0 = zeros(5,1);
    y0(1) = y(1)/2;%或y(1)乘以女婴占总男女婴的比例
    for i=1:1:4
        y0(i+1) = x0(i)*H(i+1+5*(i-1));
    end
    g0 = g ./ 2;
    y0 = y0 + g0;
    %g0为迁移过来的各个年龄段的女性人数
    disp(2008+n*20)
    zong = y'
    nv = y0'
    x = y;
    x0 = y0;
end
%自此,则完成了一轮的计算
%要预测更多,只需要循环计算以上步骤即可