导航菜单
首页 >  近几年考研人数增长图片表  > 人口模型(Malthus+Logistic)附Matlab代码

人口模型(Malthus+Logistic)附Matlab代码

目录一.Malthus模型(指数模型)(1)提出以及假设(2)影响人口增长的因素(3)建立模型(4)结论(5)举例(Matlab代码) 二.Logistic模型(阻滞增长模型)(1)背景(2)建立 r 的关系式(3)模型建立(4)结论(5)举例(Matlab代码) 三.总结

一.Malthus模型(指数模型) (1)提出以及假设

指数增长模型,由马尔萨斯在1798年提出

基本假设:人口(相对)增长率r是常数(r很小) 相对增长率 = 出生率 - 死亡率

(2)影响人口增长的因素

人口的基数 出生率和死亡率 年龄结构 性别比例 工农业生产水平 医疗水平 政府出台的政策 民族政策 …

(3)建立模型

我们用 x(t) 表示 t 时刻的人口

那么有 x ( t + △ t ) − x ( t ) = r x ( t ) △ t x(t+△t) - x(t) = rx(t)△tx(t+△t)−x(t)=rx(t)△t (其中x为人口基数)

所以 (x(t+△t)−x(t))△t= r x ( t ) \frac{(x(t+△t) - x(t)) }{ △t} = rx(t)△t(x(t+△t)−x(t))​=rx(t)

根据高数知识,求得 dxdt= r x , x ( 0 ) =x 0\frac{dx }{dt} = rx, x(0) = x_{0}dtdx​=rx,x(0)=x0​

求得: x ( t ) =x 0 ertx(t) = x_{0}e^{rt}x(t)=x0​ert

结论:随着时间的增加,人口按指数规律无限增长

(4)结论

可以进行短期的人口预测,较为符合 但是之后误差就很大了

(5)举例(Matlab代码)

eg:已知一组数据如下:

t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900]; p = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0]; t为年份,p为对应的人口数量,单位为:百万

因为马尔萨斯模型为指数函数为了线性拟合数据,我们对其进行如下操作:

两边同时取对数:

可得: l n ( x ) = l n (x 0) + r t ln(x) = ln(x_{0}) + rtln(x)=ln(x0​)+rt

t = [1790 1800 1810 1820 1830 1840 1850 1860 1870 1880 1890 1900];p = [3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0];y = log(p); %求ln(p)函数值a = polyfit(t,y,1) %用一次多项式对t和y进行拟合z = polyval(a,t); %求得以a为系数的多项式在t处的函数值z1 = exp(z)r = a(1)plot(t,p,'bo',t,z1,'r') %分别画出散点图以及拟合曲线图xlabel('时间');ylabel('人口数量');legend('实际数据','理论曲线');

作图如下(短期内基本吻合):

在这里插入图片描述 输出结果如下:

%结果如下,增长率r=0.0274a =0.0274 -47.6717z1 = 列 1 至 54.18845.51057.24989.538212.5488 列 6 至 1016.509721.720928.576937.596949.4640 列 11 至 1265.076985.6179r =0.0274

当 我 们 用 更 多 的 数 据 进 行 长 期 拟 合 是 就 会 发 现 该 方 法 做 出 来 的 差 别 较 大 ! {\color{Red}当我们用

相关推荐: