2016年五一杯数学建模
C题 二孩政策问题
原题再现
多年来实施的严、紧计划生育政策对控制人口增长起到关键作用。在优生优育政策的指引下,我国人口质量显著提高,但也带来了不利影响,生育率偏低、男女比例失衡、人口老龄化情况严重等问题。2016 年,在全国范围内放开二孩政策。早在 20 年前,我国某些地区已经开始试点二孩政策。例如:1985 年以来,山西翼城一直是二孩政策的试点地区之一,那里既没有出现人口增长过快的问题,婴儿性别比也处于国际正常水平。
查阅相关材料并参考附件材料,建立数学模型,解决如下问题。
问题 1:建立人口结构可持续发展指标体系,相关指标应具有科学性、代表性、全面性。
问题 2:建立人口结构可持续发展的评价模型。选取 10 个国内具有代表性的省(市、县),对这些地区的人口结构进行评价分级。并结合你的模型给出当前 A 地区评价等级。
问题 3:假设 A 地区不实行二孩政策,预测该地区未来 20 年的人口结构变化趋势;假设 A 地区实行二孩政策,给出二孩政策下最优出生率,使得该地区未来 20 年的人口结构更加合理。
问题 4:二孩政策下,预测 A 地区未来 10-20 年按年龄划分的人口结构。
问题 5:假如全面放开生育政策(不限制生育数量),在国民经济运行稳定的基础上预测 A 地区未来 20 年人口结构的变化趋势。
整体求解过程概述(摘要)
本文针对“二孩政策”问题,采用模糊评价模型对人口结构进行评价,并采用 PDE模型研究不同的生育政策对人口结构的影响,得到如下结论:若不实行“二孩政策”,未来 A 地区人口老龄化将十分严重,若实行“二孩政策”则将大大缓解老龄化问题,若全面开放生育政策,则在缓解老龄化的同时又会加重中年人口抚养的负担,同时造成就业难问题。
问题一,本文参考国际上人口问题的常用指标,利用因子分析法初选和 SPSS 变异系数进行数据差异性分析,力求指标具有科学、全面、代表性。最终在人口密度、性别比例、人口老龄化、自然增长率、城乡人口比例、总抚养率等指标上建立人口结构可持续发展指标体系。
问题二,本文采用熵权法计算相关指标的对应权重,并建立模糊评价模型,将人口结构分为 4 级。同时通过隶属函数找到模糊关系矩阵,由各地区相对于各级的隶属度值,得到各地区的综合评价。等级评价如下:北京、上海、广东、A 地区属于第 4 级;湖北、山西、山东属于第 3 级;四川、云南、新疆属于第 2 级;吉林属于第 1 级。
问题三,本文通过建立灰色预测模型,根据附录中 A 地区的原始数据,通过 MATLAB、C++编写程序求解,得到 20 年后 A 地区少年人口最多、中年人口其次、老年人口最少的年龄结构,和城镇人口逐年增加,农村人口逐年平稳、略有增加的情况。本文通过建立线性约束模型,令出生率满足限制条件的方法来求解使得 A 地区未来 20 年的人口结构更加合理的最优出生率,最终得到的最优出生率为 13.1%。
问题四,本文建立人口结构的 PDE 模型,通过调整生育率参数的方法,反映二孩政策对人口所产生的影响,并对每年的人口进行推演得到未来 20 年的预测结果。由所得数据可知,随着二孩政策的开放,人口老龄化情况将随着时间的增加而有所减缓。
问题五,本文在问题四的基础上,通过修改生育率得到全面放开生育政策下的参数,并对每年的人口进行推演得到未来 20 年的预测结果。由所得数据可知,全面放开生育政策在一段中期时间内能有效降低人口老龄化的程度,但是同时青少年的比重将大大加重,将会对人口造成一定的就业以及生存负担。
本文最大的特色在于建立的灰色预测模型和 PDE 模型解决了对人口结构进行试验的困难,易操作、规范且节约成本,同时建立的模型可推广于人口问题的求解,对人口政策的制定起到一个参考的作用。
模型假设:
1、假设社会经济平稳发展;
2、假设各地区的迁入迁出达到动态平衡;
3、没有大规模战争以及瘟疫传染性疾病;
4、假设所有表征和影响人口变化的因素都是在整个社会人口平均意义下确定的;
5、假设在短期内没有外来物种对人类的生存造成影响;
6、假设医疗水平,科学技术在未来相当长的时间内不会对人的死亡率造成影响;
7、假设所有数据足够准确;
问题分析:
问题一的分析
问题一要求建立人口结构可持续发展指标体系,相关指标应具有科学性、代表性、全面性。本文首先结合国际标准和参考文献,初步选择评价指标,然后通过因子分析法确立人口结构可持续发展指标体系所用指标,并对选择的指标进行检验。再综合利用 SPSS项目分析法筛选指标。最终确立人口结构可持续发展指标体系。
问题二的分析
问题二要求建立人口结构可持续发展的评价模型,并选取 10 个国内具有代表性的省(市、县),对这些地区的人口结构进行评价分级。并结合模型给出当前 A 地区评价等级。首先本文参考问题一建立的人口结构可持续发展体系中的指标,选择人口密度、男女性别比、老年人口比例、自然增长率、城镇人口比例、总抚养比作为评价模型的评价指标,并采用熵权法确定各个指标的权重。然后建立模糊数学评价模型,参照国际上通行的一些标准对各个指标确定了评价标准,将人口发展情况分为 4 级;将线性函数作为隶属函数找到评价集和各个指标之间的模糊关系矩阵;将权重赋予各个指标得到最终的模糊评价模型。在选取省份时,本文根据地理位置分布的不同选取北京、上海、广东、湖北、山西、四川、云南、新疆、吉林、山东作为有代表的地区。将以上 10 个省份以及 A 地区的 6个指标数据代入模型即可得到该地区人口发展情况每级的隶属度,即可知该地区人口的发展情况。
问题三的分析
问题三要求在 A 地区不实行二孩政策的情况下预测该地区未来 20 年的人口结构变化趋势;以及在 A 地区实行二孩政策的情况下,给出二孩政策下最优出生率,使得该地区未来 20 年的人口结构更加合理。对于第一个小问,在 A 地区不实行二孩政策,即没有政府政策影响 A 地区的生育率、出生率,本文通过建立灰色预测模型,通过 MATLAB、C++编写程序求解相关参数。将出生率、死亡率以及城乡人口数量根据时间的发展做出未来 20 年的预测,并根据预测数据得到未来 20 年的人口结构分布。对于第二个小问,为求得最优出生率,本文通过建立约束条件,利用人口预测公式,求出能使得 X 满足约束条件的解。并根据问题一中建立的人口可持续发展指标体系,对在该最优出生率条件下的 20 年后人口结构进行等级评价。
问题四的分析
问题四要求在 A 地区二孩政策下预测该地区未来 10-20 年按年龄划分的人口结构。由于实行二孩政策会影响妇女的生育率,也即影响该地的出生率,因此本文先对生育率、出生率等参数进行预测,得到在实行政策下的参数,并建立 PDE 模型,通过对不同年龄阶段的人口数进行推演得到未来 10-20 年按年龄划分的人口结构。
问题五的分析
问题五要求在全面放开生育政策(不限制生育数量),在国民经济运行稳定的基础上,预测 A 地区未来 20 年人口结构的变化趋势。在问题四的基础上,本文可以在 PDE 模型中通过修改对出生率、生育率等参数的预测,得到在全面开放二胎政策下的人口结构变化,并根据人口结构的增长型、稳定型、衰减型对人口变化趋势做出预测。
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
程序代码:(代码和文档not free)
#include<iostream>
using namespace std;
int main()
{
int j;
double midu,nn,old,zengzhang,chengzhen,fuyang;
double yold[6],ynn[6],ychengzhen[6],yzengzhang[6],ymidu[6],yfuyang[6];
for (j=0;j<5;j++)
ymidu[j]=0;
for (j=0;j<5;j++
ynn[j]=0;
for (j=0;j<5;j++)
yold[j]=0;
for (j=0;j<5;j++)
yzengzhang[j]=0;
for (j=0;j<5;j++)
ychengzhen[j]=0;
for (j=0;j<5;j++)
yfuyang[j]=0;
cin>>midu>>nn>>old>>zengzhang>>chengzhen>>fuyang;
if (old<4) //老年比例
yold[4]=1;
else
if ((old>=4)&&(old<6))
{
yold[4]=(6-old)/2;
yold[3]=(old-4)/2;
}
else
if ((old>=6)&&(old<9))
{
yold[3]=(9-old)/3;
yold[2]=(old-6)/3;
}
else
if ((old>=9)&&(old<11))
{
yold[2]=(11-old)/2;
yold[1]=0;
}
else
yold[1]=1;
if (nn<1) //男女比例
ynn[1]=1;
else
if ((nn>=1)&&(nn<1.03))
{
ynn[1]=0;
ynn[3]=(nn-1)/0.03;
ynn[4]=(1.03-nn)/0.03;
}
else
if ((nn>=1.03)&&(nn<1.07))
{
ynn[3]=(1.07-nn)/0.04;
ynn[2]=(nn-1.03)/0.04;
}
else
if (nn>=1.07)
ynn[2]=1;
if (zengzhang<3) // 自然增长率
yzengzhang[1]=1;
else
if ((zengzhang>=3)&&(zengzhang<5))
{
yzengzhang[4]=(5-zengzhang)/2;
yzengzhang[3]=(zengzhang-3)/2;
}
else
if ((zengzhang>=5)&&(zengzhang<10) )
{
yzengzhang[3]=(10-zengzhang)/5;
yzengzhang[4]=(zengzhang-5)/5;
}
else
if (zengzhang>=10)
yzengzhang[2]=1;
if (chengzhen<=25) //城镇
ychengzhen[1]=1;
else
if ((chengzhen>25)&&(chengzhen<=45))
{
ychengzhen[1]=(45-chengzhen)/20;
ychengzhen[2]=(chengzhen-4)/20;
}
else
if ((chengzhen>45)&&(chengzhen<=60) )
{
ychengzhen[3]=(chengzhen-45)/15;
ychengzhen[2]=(60-chengzhen)/15;
}
else
if (chengzhen>60)
{
ychengzhen[4]=1;
}
if (fuyang<35) //总抚养比
yfuyang[4]=1;
else
if ((fuyang>=35)&&(fuyang<44))
{
yfuyang[3]=(44-fuyang)/9;
yfuyang[2]=(fuyang-35)/9;
}
else
if ((fuyang>=44)&&(fuyang<68) )
{
yfuyang[2]=(68-fuyang)/24;
yfuyang[1]=(fuyang-44)/24;
}
else
if (fuyang>=68)
{
yfuyang[1]=0;
}
if (midu<10) //人口密度
ymidu[1]=1;
else
if ((midu>=10)&&(midu<250))
{
ymidu[1]=(250-midu)/240;
ymidu[2]=(midu-10)/240;
}
else
if ((midu>=250)&&(midu<1000))
{
ymidu[3]=(midu-250)/750;
ymidu[2]=(1000-midu)/750;
}
else
if (midu>=1000)
{
ymidu[4]=1;
}
for (j=0;j<4;j++)
cout<<ymidu[j+1]<<' ';
cout<<endl;
for (j=0;j<4;j++)
cout<<ynn[j+1]<<' ';
cout<<endl;
for (j=0;j<4;j++)
cout<<yold[j+1]<<' ';
cout<<endl;
for (j=0;j<4;j++)
cout<<yzengzhang[j+1]<<' ';
cout<<endl;
for (j=0;j<4;j++)
cout<<ychengzhen[j+1]<<' ';
cout<<endl;
for (j=0;j<4;j++)
cout<<yfuyang[j+1]<<' ';
cout<<endl;
}