
美国人口增长模型.docx
7页4.1美国人口增长问题研究4.1.1问题重述认识人口数量的变化过程,建立数学模型描述人口发展规律,做出较为准确的增长预测,是制定积极、稳妥的人口政策的前提请使用下表的美国人口统计数据进行参数估计,并作模型检验和增长预测年份17901800181018201830184018501860人□/百万3.95.37.29.612.917.123.231.4增长率/10年0.29490.31130.29860.29690.29070.31020.30820.2452年份18701880189019001910192019301940人□/百万38.650.262.97692105.7122.8131.7增长率/10年0.24350.2420.20510.19140.16140.14570.10590.1059年份1950196019701980199020002010人□/百万150.7179.3203.2226.5248.7281.4308.7增长率/10年0.15790.14640.11610.10040.11040.13494.1.2符号规定与基本假设1.符号规定r表示人口增长率xt表示人口数量x表示人口容量m2.基本假设假设人口增长符合生长规律;不考虑战争等非射幸因素;不考虑突发事故所引起的人口数量变化4.1.3模型分析与建立考察一个国家或者地区的人口数量随着时间延续而发生变化的规律时,可以将人□看作连续时间t的延续可微函数Xt。
记初始时刻t0的人□为x假0设单位时间人□增长率为常数r,即可得到满足人□增长的微分方程和初始条件为:dxrxx0x(1.1)dt0易得:xtxen(1.2)0若r0,人□将按指数规律无限增长根据已知数据对模型的参数进行估计又称为数据拟合对式(1.1中)的参数r,x进行估计主要有以下两种方法0方法一:直接使用人□数据和线性最小二乘法,对(1・2式取对数可得:yrta,ylnx,alnx(1.3)0由本题所给表格,通过MATLAB软件可计算得出,r0.2020/10年,x6.04960方法二:先对人□数据进行数值微分,再计算增长率并将其平均值作为r的估计;x直接取原始数据0数值微分的中点公式如下:假设函数xt在分点t,t,,t(等间距t)的离01n散值为x,x,,x,那么函数在各个分点的导数近似值为…01nxx…xt,k1,2,,n1(1.4)k2t3x4xxx...4x3x/、xt012,xt-^-2^4(1.5)02tn2txt根据式(1.5可以计算出美国人口1790年至2000年的增长率r—,为kxtk0.2052年/10年,令人□数量初值x3.9,即可预测算出人□数量0方法三:将指数增长模型进行改进,原先的模型(1.1式)改写为dxrtxrrtx,x0x(1.6)dt010易得xtxer0tr1t2/2(1.7)0根据美国人口增长率数据可得r0.3252,r0.0114,令人口数量初值取013.90即x3.90,拟合结果如图4.1所示。
0Logisti方法一:(非常重要的预测方法,需要重点掌握!!!)随着人□数量的增长,资源和环境对其增长起到了阻滞作用即增长率r随着人□数量x的增加而下降,用rxabx为了赋予增长函数中系数的实际意义,引入以下两个参数1)内廩增长率r表示x0的增长率,即r0r,则ar;2)人□容量x表示资源和环境所能容纳的最大人□数量,当xx即表mm示人□不在增长,即rxrbxmm0,得brxm,可得增长率函数rxr1—xmdxdtxrx1——,xxm(1.8)x式(1.8中,右端rx体现人□自身增长趋势,而1—体现了资源和环境对xm人□增长的阻滞作用人□增长是两者同时作用的结果以下是对Logisti模型的参数估计将式(1.8改)写为(1.9)dx/dtrxr,x0xxm(1.9式)左端作数值微分之后计算增长率,右端使用线性最小二乘法进行参数估计可以计算出结果为r0.2805x352.0548x3.9,由式(1.9可以计算出m0最终预测结果4.1.4模型的求解编写如下代码:clc,clear%1790-2010美国人口数据P=[3.95.37.29.612.917.123.231.438.650.262.97692105.7...122.8131.7150.7179.3203.2226.5248.7281.4308.7];n=length(P)-1;%选取1790-2000美国人□数据及相应的时间节点总计n个t=[0:n-1]';P1=P(1:n)';%指数增长模型的参数估计%方法一,线性最小二乘方法%A=[ones(n,1)t];%b=log(P1);%F=inv(A'*A)*(A'*b);%x0=exp(F⑴);%初始人口比=0)%r=F(2);%增长率/10年%%1790-2000美国人□估计%x=zeros(n,1);%x(1)=x0;%fori=1:n%t1=i-1;%x(i)=x(1)*exp(r*t1);%end%figure%plot(1:n,P1,'r.');%holdon%plot(1:n,x,'k-.');%gridon%xlabel('t')%ylabel('x')%legend(实际人□,模拟结果)%%%%方法二,数值微分方法%rk=zeros(n,1)每十年的相对增长率%rk⑴=(-3*P1(1)+4*P1(2)-P1(3))/2;%17年增长率%rk(n)=(P1(n-2)-4*P1(n-1)+3*P1(n))/2;%20年增长率%fori=2:n-1rk(i)=(P1(i+1)-P1(i-1))/2;%end%rk=rk./Pl;每十年的相对增长率%r=sum(rk)/n;%每十年的平均相对增长率%%1790-2000美国人口估计%x=zeros(n,1);%x⑴=P1(1);%初值%fori=1:n%t1=i-1;%x(i)=x(1)*exp(r*t1);%end%figure%plot(1:n,P1,'r.');%holdon%plot(1:n,x,'k-.');%gridon%xlabel('t')%ylabel('x')%legend(实际人□,模拟结果)%%Logistic增长模型的参数估计%%方法一,数值微分方法+线性最小二乘估计rk=zeros(n,1)每十年的相对增长率rk(l)=(-3*Pl(l)+4*Pl(2)-Pl(3))/2;%l年增长率rk(n)=(Pl(n-2)-4*Pl(n-l)+3*Pl(n))/2;%2年增长率fori=2:n-1rk(i)=(P1(i+1)-P1(i-1))/2;endrk=rk./P1;%每十年的相对增长率A=[ones(n,1)-P1];b=rk;F=inv(A'*A)*(A'*b);r=F(l);%增长率/10年xm=r/F(2);%人□总量%%1790-2000美国人□估计x=zeros(n,1);x(1)=P1(1);fori=1:nt1=i-1;x(i)=xm/(1+(xm/P1(1)-1)*exp(-r*t1));endfigureplot(1:n,P1,'r.');holdonplot(1:n,x,'k-.');gridonxlabel('t')ylabel('x')legend实际人口,模拟结果)表4.1指数模型三种方法运算出的结果实际人口方法方法二方法三3.906.053.903.905.307.404.795.147.209.065.886.789.6011.097.228.9212.9013.578.8611.7117.1016.6110.8815.3423.2020.3313.3620.0231.4024.8816.4026.0338.6030.4520.1433.6550.2037.2724.7243.2162.9045.6130.3555.0176.0055.8237.2669.3292.0068.3145.7586.27105.7083.6156.17105.81122.80102.3268.96127.65131.70125.2384.67151.23150.70153.26103.95175.75179.30187.57127.63200.29203.20229.56156.70223.90226.50280.95192.39245.79248.70343.85236.20265.38281.40420.82290.00282.394.1.5结果分析图4.2方法二拟合出图像。












