微分方程模型
人口模型
1. Malthus(马尔萨斯人口模型)
变量表示:
- (t, P(t)):表示人口的数对,t为时间,P(t) 为 t 时刻的人口数
- b, p:分别表示出生率、死亡率
比如说,2002年年初人口总数是 p ,则2002年出生的人数和死亡的人数就分别是 bp 和 dp . 所以,2003年年初的人口总数是
-
这里的 r 是自然增长率。该模型是离散的,但是人口数很大,人口变化(人的生死)是在短时间内随时在发生,故可以看成是连续模型。
-
类似于瞬时速度,t 时刻的人口增长率,为人口平均增长率在所用时间趋于 0 时的极限:
假设:
- 人口发展过程比较平稳;
- 人口数量为时间的连续可微函数;
- 人口增长率是与时间无关的常数 ;
由前面的分析可得
(离散形式)
, (连续形式)
进一步得到 Malthus 人口模型
MATLAB代码求解
syms r P(t) t0 P0
eqn=diff(P,t)==r*P;
cond=P(t0)==P0;
PSol(t)=dsolve(eqn, cond); % 返回符号函数symfun
simplify(PSol(t))
运行结果:
ans=P0*exp(r*(t - t0))
2 . Logistic人口模型
-
阻滞增长模型
Malthus人口模型假设人口增长率 r 为常数,导致了人口指数增长到无穷,这是不合理的。因为没有考虑到有限的资源对种群的增长会产生遏制作用。
假设
-
人口增长率是人口数量的递减函数;
-
确定的环境内的资源供给为常数,且对每个个体的分配是均等的。这表明:当人口规模(密度)增大时,每个人食物的平均分配量必然减少,从而导致人口增长率降低。
-
(对人口增长率做修正):让它不再是常数 r,而是时间 t 的函数 ,让它通过 t 时刻人口数量来起作用,假设是这样作用:
这里 K 为新引入的参数,表示地球所能容纳的最大人口数量。
Malthus 时代, P(t) 相对于 K 来说很小,括号项很接近1,所以也就合理了。若取 K=+∞,就退化为 Malthus 人口模型。
用 N(t) 表示 t 时刻的人口数,类似 Malthus 人口模型,可得到 Logistic 人口模型:
仍用分离变量法就能求解:
其中 C=
MATLAB代码求解
syms r K N(t) t0 N0
eqn = diff(N,t) == r * (1 - N/K) * N;
cond = N(t0) == N0;
NSol(t) = dsolve(eqn, cond) % 返回符号函数symfun
simplify(NSol(t))
运行结果:
Nsol(t) = K/(exp(K*((log(K/N0-1) + r*t0)/K – (r*t)/K)) + 1)
ans =(K*N0*exp(r*(t – t0)))/(K - N0 + N0*exp(r*(t - t0)))
考察时间 t 趋近于无穷大时的极限,可以发现结果与 Malthus 模型完全不同!
具体做法:
1.先粗略(目测)估计一个 ,它是容纳量的界限,拐点处是它的一半,
有了它再对 做 Logit 变换。
- 再用线性回归估计系数 ,,这样就得到了要估计的3个参数较好的一
组初始值。 - 有了这 3 个参数的较好的初始值,再做原模型的非线性拟合。
3 . Leslie 人口模型
只对人口总量建模是不够的,特别是需要研究和年龄段有关的问题:老龄化、劳动力人口等。这就需要关注人口的年龄分布(每个年龄段人口的数量),适合的数学模型是基于差分方程理论的Leslie模型。
Leslie模型,是基于年龄和性别,将人口各年龄段的发展过程建立差分方程组,引入矩阵表示后可变成离散矩阵模型。
Leslie模型构建的基本原理:首先将人口按性别分组,针对女性人口,选择某初始时期,记分年龄段的女性人口数作为一个列向量;然后通过各年龄段生育率、存活率构建 Leslie 人口矩阵;接着,用Leslie人口矩阵左乘分年龄段的女性人口向量,得到新的列向量即为预测的下一阶段分年龄段的女性人口向量;最后,根据男女性别比例推算出人口总数,根据预测年龄分布可以计算平均年龄、平均寿命、老龄化指数、抚养指数等。
对女性人口按年龄切分,记为按年龄段的女性人口向量:
例如,0~4岁用 表示,5~9岁用表示,……,85-89岁用 表示,90岁及以上用 表示,各年龄段女性人口的转移关系如下:
各年龄段女性人口的转移关系图