人口指数增长模型和Logistic模型
人口增长模型是研究人口增长规律的数学模型,根据美国人口从1790年到1990年间的人口数据,确定人口指数增长模型和Logistic模型中的待定参数,估计出美国2010年的人口,探讨指数增长模型和Logistic模型的应用和优缺点。
指数增长模型
指数增长模型是指人口增长率为常数的数学模型,记为r,人口在时刻t的数量为x(t),初始时刻的人口为x0,则有:
dx/dt = rx
经拟合得到:
x(t) = x0 \* exp(rt)
其中x0 = 1.2480e-016,r = 0.0214,则得到人口关于时间的函数为:
x(t) = 1.2480e-016 \* exp(0.0214t)
输入:t = 2010;x0 = 1.2480e-016;x(t) = x0 \* exp(r \* t) = 598.3529
即在指数增长模型下,到2010年美国人口大约为598.3529万。
Logistic模型
Logistic模型是指人口增长率随着人口数量的增加而减少的数学模型,假设人口的增长率为x的减函数,如设r(x) = r(1 - x/xm),其中r为固有增长率(x很小时),xm为人口容量(资源、环境能容纳的最大数量),于是得到以下微分方程:
dx/dt = rx(1 - x/xm)
经拟合得到:
x(t) = a(1) / (1 + (a(1)/3.9 - 1) \* exp(-a(2) \* (t - 1790)))
其中a(1) = 311.9531,a(2) = 0.02798178,则得到美国2010年的人口估计为267.1947万。
对比分析
指数增长模型和Logistic模型都是研究人口增长规律的重要模型,但它们有着不同的假设和应用场景。指数增长模型假设人口增长率为常数,且忽视了环境和资源对人口增长的限制,而Logistic模型则考虑了人口增长的限制和阻滞作用。在实际应用中,指数增长模型适合研究人口增长的初期阶段,而Logistic模型适合研究人口增长的后期阶段。
Matlab代码
clear all
t=1790:10:1980;
x(t)=[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 ];
y=log(x(t));
a=polyfit(t,y,1)
r=a(1)
x0=exp(a(2))
x1=x0.*exp(r.*t);
plot(t,x(t),'r',t,x1,'b')
function f=curvefit_fun2 (a,t)
f=a(1)./(1+(a(1)/3.9-1)*exp(-a(2)*(t-1790)));
main.m文件:
x=1790:10:1990;
y=[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];
plot(x,y,'*',x,y);
hold on;
a0=[0.001,1];
a=lsqcurvefit('curvefit_fun2',a0,x,y);
disp(['a=' num2str(a)]);
xi=1790:5:2020;
yi=curvefit_fun2(a,xi);
plot(xi,yi,'r');
x1=2010;
y1=curvefit_fun2(a,x1)
hold off
评论6
最新资源