人口总量发展模型

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人口总量发展模型

1. 马尔萨斯人口模型

设时刻t 时人口为)(t x ,单位时间内人口增长率为r ,则t ∆时间内增长的人口为: t r t x t t x ∆=-∆+.)()( 当0→∆t ,得到微分方程:

0)0(,x x r dt

dx

== 则: t

r e x t x .0.)(=

待求参数r x ,0。

为便于求解,两边取对数有:

t r a y .+=,其中0ln ,ln x a x y ==,该模型化为线性求解。

2. 阻滞型人口模型

设时刻t 时人口为)(t x ,环境允许的最大人口数量为m x ,人口净增长率随人口数量的增加而线性减少,即 )1.()(m

x x r t r -

= 由此建立阻滞型人口微分方程:

0)0(,).1(x x x x x

r dt dx m

=-= 则: t

r m m

e

x x x t x .0.11)(-⎪⎪⎭

⎫ ⎝⎛-+=

待求参数r x x m ,,0。此即为Logistic 函数. 当2m x x =

时,x 增长最快,即dt

dx 最大。 2~,1~/图形见图图见图t x x dt dx 。

三、实际数据处理

年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.1884

5.5105 7.2498 9.538 12.549 1

6.5097 1.7209 28.5769 模型

阻滞

7.6981 9.5096 11.7361 14.4667 17.807 21.8782 26.8229 32.7987 模型

年1870 1880 1890 1900 1910 1920 1930 1940

实际

38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 人口

指数

37.597 49.464 65.077 85.618

模型

阻滞

39.979 48.5470 58.6861 70.5673 84.331 100.065 117.779 137.387 模型

年1950 1960 1970 1980 1990 2000

实际

150.7 179.3 204.0 226.5 251.4 281.4

人口

指数

模型

阻滞

158.683 181.3439 204.938 228.951 252.834 276.048

模型

(1) 由指数增长模型得到模型为

t e y .2743.01936.3= (1790~1900年数据)

均方误差根为0215.3=RMSE 结果图见图1. (效果好)

t e y .2022.09384.4= (1790~1900年数据)

均方误差根为8245.39=RMSE 结果图见图2.(效果不好)

图1 指数模型(1790~1900),’*’为原数据,实线为拟合值

图2 美国人口指数模型(1790~2000),’*’为原数据,实线为拟合值

指数模型求解Matlab程序population_america1.m:

%美国人口模型,指数增长模型

x=[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,281.4]';

n=12;

xx=x(1:n);%1790年到1900年数据

t=[ones(n,1),(1:n)'];

y=log(xx(1:n));

[b,bint,r,rint,stats]=regress(y,t);

RR=stats(1);%复相关系数

F=stats(2);%F统计量值

prob=stats(3); % 概率

x0=exp(b(1)); %参数x0;

r=b(2); %参数r

py=x0*exp(r*t(:,2)); %预测数据

err=xx-py;

rmse=sqrt(sum(err.^2)/n); %均方误差根

plot(1:n,xx,'*',1:n,py); %作对比图

(二) 阻滞型模型

拟合1790年到2000年数据,得到结果为:

2155.0,572.446,2267.60===r x x m

e

t

y .2155.07191.701572.446-+=

均方误差根为5614.4=RMSE ,并预测2010年美国人口为298.1138百万. 结果图见图3. (效果好)

图3 美国人口阻滞型模型(1790~2000),’*’为原数据,实线为拟合值

Matlab 程序population_america2.m

%美国人口模型,阻滞型增长模型 %非线性回归

x=[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,281.4]';

n=22;

y=x(1:n);%1790年到1900年数据 t=(1:n)';

beta0=[5.3,0.22,400,]; %[x0,r,xm] [beta,R,J]=nlinfit(t,y,'logisfun',beta0); %R 为残差,beta 为待求参数

相关文档
最新文档