您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > matlab > 多种方法的人口模型(含matlab仿真代码)
人口的增长是当前世界上引起普遍关注的问题,作为世界上人口最多的国家,我国的人口问题是十分突出的,巨大的人口压力给我国的社会、政治、经济、医疗、就业等带来了一系列的问题。因此,研究和解决人口问题在我国显得尤为重要。基于Malthusian、Logistic、灰色系统、BP神经网络对中国人口做了一个非常简单的预测,旨在了解这些模型。Malthusian模型1978年到2003年人口数时间(年)197819791980198119821983198419851986人数(万)965299752498705100072101654103008104357105851107057时间198719881989199019911992199319941995人数109300111026112704114333115823117171118517119580121121时间19961997199819992000200120022003人数122359123626124761125786126743127627128453129227Malthusian模型:通过对上表进行数据拟合,可得参数对人口进行预测,获得2004-2012年的人口数,并与实际值进行比较0()rtxtxe𝒓Malthusian模型时间200420052006200720082009201020112012人数1299881307561314481321291328021334741340911347351354042004-2012人口数据1975198019851990199520002005201020150.911.11.21.31.41.5x105马尔萨斯模型预测值134030135700137380139090140820142560144330146120147940Logistic模型Logistic方程表达式:0()1(1)mrtmxxtxex通过对人口表进行数据拟合,可得饱和人口量和增长速率,再对2004-2012年人口做出预测1975198019851990199520002005201020150.9511.051.11.151.21.251.31.351.4x105Logistic模型时间200420052006200720082009201020112012人数129988130756131448132129132802133474134091134735135404预测值131410132520133620134690135740136780137790138780139750灰色模型(greymodels)就是通过少量的、不完全的信息,建立灰色微分预测模型,对事物发展规律作出模糊性的长期描述。灰色系统是既含有已知信息,又含有未知信息或非确知信息的系统,人口系统具有明显的灰色性灰色生成对原始数据的生成就是企图从杂乱无章的现象中去发现内在规律.GM(1.1)模型建模机理根据生成可以建立白化形式微分方程,解得GM(1.1)模型GM(1.1)模型的精度检验ˆ(1)(1)ˆˆˆ(1)[(1)](224)ˆˆakuuxkxeaaGM(1.1)模型还原函数(0)(1)(1)ˆˆ(1)ˆˆˆ(1)(1)()ˆ(1)[(1)](225)ˆaakxkxkxkuexea灰色系统预测灰色系统预测𝑥(0)(𝑘+1)=8176824.7277𝑒0.00012022𝑘−8080565.7277最终求得还原函数:计算得到参数:a=-0.0120,u=97146灰色系统预测1975198019851990199520002005201020150.911.11.21.31.41.5x105时间200420052006200720082009201020112012人数129988130756131448132129132802133474134091134735135404预测值133570135190136820138470140150141840143560145300147050BP神经网络模型所谓人工神经网络就是基于模仿生物大脑的结构和功能而构成的一种信息处理系统。神经元网络中各神经元之间联结的强弱,按外部的激励信号做自适应变化人工神经网络是根据人的认识过程而开发出的一种算法。把输入与输出之间的未知过程看成是一个“网络”,通过不断地给这个网络输入和相应的输出来“训练”这个网络,网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。BP算法是有指导训练的前馈多层网络训练算法,是靠调节各层的加权,使网络学会由输入输出对组成的训练组BP神经网络模型1975198019851990199520002005201020150.9511.051.11.151.21.251.31.351.41.45x105参数设置:最大循环1000次,误差要求小于0.01,对网络进行训练,可得到模型BP神经网络模型时间200420052006200720082009201020112012人数129988130756131448132129132802133474134091134735135404预测值132750134140135530136920138320139710141100142490143880灰色系统理论具有所需样本数据少,不需要计算统计特征量等优点,在不确定性显著和缺乏数据的状况中,得到了成功的应用。从灰色理论本身来看,其预测公式还存在缺陷人工神经网络具有大规模并行、分布式处理、自组织、自学习等优点被广泛应用于语音分析、图像识别、数字水印、计算机视觉等很多领域。BP神经网络算法的收敛速度慢、算法低效。BP神经网络结构的选择至今尚无一种统一而完整的理论指导,一般只能由经验选定。%马尔萨斯模型x1=1978:2003;N1=[96259,97524,98705,100072,101654,103008,104357,105851,107057,109300,111026,112704,114333,115823,117171,118517,119850,121121,122359,123626,124761,125786,126743,127627,128453,129227];y=log(N1);p=polyfit(x1,y,1)x2=1978:2012;N2=[96259,97524,98705,100072,101654,103008,104357,105851,107057,109300,111026,112704,114333,115823,117171,118517,119850,121121,122359,123626,124761,125786,126743,127627,128453,129227,129988,130756,131448,132129,132802,133474,134091,134735,135404];Malthus=exp(polyval(p,x2));plot(x2,N2,'o',x2,Malthus)%Logistic模型b0=[241959,0.02985];%初始参数值fun=inline('b(1)./(1+(b(1)/96529-1).*exp(-b(2).*(t-1978)))','b','t');b1=nlinfit(x1,N1,fun,b0)Logistic=b1(1)./(1+(b1(1)/96529-1).*exp(-b1(2).*(x2-1978)));%非线性拟合的方程figureplot(x2,N2,'o',x2,Logistic)%灰色预测sizexd2=size(N1,2);k=0;fory1=N1k=k+1;ifk1x(k)=x(k-1)+N1(k);z1(k-1)=-0.5*(x(k)+x(k-1));yn1(k-1)=N1(k);elsex(k)=N1(k);endendsizez1=size(z1,2);z2=z1';z3=ones(1,sizez1)';YN=yn1';B=[z2z3];au0=inv(B'*B)*B'*YN;au=au0';afor=au(1)ufor=au(2)ua=au(2)./au(1);constant1=N1(1)-ua;afor1=-afor;m=0:34GM=constant1.*exp(afor1.*m)+ua;figureforj=1:34Y(1,j)=GM(j+1)-GM(j);endXY=[N1(1),Y]plot(m+1978,N2,'o',m+1978,XY)clc%人工神经网络。单独代码x1=1978:2003;N1=[96259,97524,98705,100072,101654,103008,104357,105851,107057,109300,111026,112704,114333,115823,117171,118517,119850,121121,122359,123626,124761,125786,126743,127627,128453,129227];x2=1978:2012;N2=[96259,97524,98705,100072,101654,103008,104357,105851,107057,109300,111026,112704,114333,115823,117171,118517,119850,121121,122359,123626,124761,125786,126743,127627,128453,129227,129988,130756,131448,132129,132802,133474,134091,134735,135404];net=newcf(minmax(x1),[51],{'tansig''purelin'});net.trainParam.epochs=1000;%最大循环1000次net.trainparam.goal=0.01;%期望目标误差最小值net=train(net,x1,N1);%对网络进行反复训练Y3=sim(net,x2)plot(x2,Y3,x2,N2,'o')
本文标题:多种方法的人口模型(含matlab仿真代码)
链接地址:https://www.777doc.com/doc-7028003 .html