随机人口模型
现实世界中的人口动态受到环境噪声、个体差异和随机事件的影响,确定性模型往往无法捕捉这些不确定性。随机人口模型通过引入随机过程,为理解种群波动、灭绝风险和演化动态提供了更加真实的数学框架。
确定性模型的局限
经典的确定性人口模型(如Malthus模型和Logistic模型)假设种群增长率是固定的常数,所有个体行为一致,环境条件不随时间变化。然而,现实中存在以下问题:
- 环境随机性:气候变化、自然灾害、资源波动等外部因素使得增长率随时间随机变化
- 人口统计随机性:当种群规模较小时,个体的出生和死亡事件具有明显的离散随机性
- 遗传漂变:小种群中基因频率的随机波动可能导致种群特征变化
- 初始条件敏感性:确定性模型对参数的微小偏差无法反映真实系统的不确定性
考虑确定性Malthus模型:
\[ \frac{dN}{dt} = rN, \quad N(0) = N_0 \]
其解为 \( N(t) = N_0 e^{rt} \),表现为严格的指数增长或衰减。但实际观测数据总是围绕理论曲线波动,尤其在小种群中,灭绝概率无法通过确定性模型预测。
确定性Logistic模型:
\[ \frac{dN}{dt} = rN\left(1 - \frac{N}{K}\right) \]
预测种群必然趋向环境容纳量 \( K \),但实际种群可能在 \( K \) 附近持续波动,甚至在随机干扰下灭绝。
随机过程基础:生灭过程
基本概念
生灭过程(Birth-Death Process)是描述种群动态的最基本随机模型。设 \( N(t) \) 为时刻 \( t \) 的种群大小,它是一个取非负整数值的连续时间马尔可夫链。
定义转移率:
- 出生率:\( \lambda_n = \lambda n \),即当种群大小为 \( n \) 时,单位时间内增加一个个体的概率率
- 死亡率:\( \mu_n = \mu n \),即当种群大小为 \( n \) 时,单位时间内减少一个个体的概率率
在微小时间间隔 \( \Delta t \) 内:
\[ P(N(t+\Delta t) = n+1 \mid N(t) = n) = \lambda_n \Delta t + o(\Delta t) \]
\[ P(N(t+\Delta t) = n-1 \mid N(t) = n) = \mu_n \Delta t + o(\Delta t) \]
\[ P(N(t+\Delta t) = n \mid N(t) = n) = 1 - (\lambda_n + \mu_n)\Delta t + o(\Delta t) \]
灭绝概率
对于线性生灭过程,灭绝概率 \( q = P(N(t) \to 0 \text{ as } t \to \infty) \) 满足:
\[ q = \begin{cases} 1 & \text{if } \lambda \leq \mu \ \left(\frac{\mu}{\lambda}\right)^{N_0} & \text{if } \lambda > \mu \end{cases} \]
这表明即使增长率为正(\( \lambda > \mu \)),小种群仍有非零的灭绝概率,这是确定性模型无法揭示的重要结论。
期望与方差
种群大小的期望和方差分别为:
\[ E[N(t)] = N_0 e^{(\lambda - \mu)t} \]
\[ \text{Var}[N(t)] = N_0 \frac{\lambda + \mu}{\lambda - \mu} e^{(\lambda-\mu)t}\left(e^{(\lambda-\mu)t} - 1\right), \quad \lambda \neq \mu \]
当 \( \lambda = \mu \) 时,\( E[N(t)] = N_0 \),但 \( \text{Var}[N(t)] = 2\lambda N_0 t \),方差随时间线性增长。
随机Malthus模型
模型构建
将确定性Malthus模型中的增长率 \( r \) 替换为随机过程,假设增长率在均值 \( r \) 附近波动:
\[ r(t) = r + \sigma \xi(t) \]
其中 \( \xi(t) \) 为白噪声过程,\( \sigma \) 为噪声强度。由此得到随机微分方程(SDE):
\[ dN(t) = rN(t),dt + \sigma N(t),dW(t) \]
这里 \( W(t) \) 是标准维纳过程(布朗运动),满足:
- \( W(0) = 0 \)
- \( W(t) - W(s) \sim \mathcal{N}(0, t-s) \),对 \( t > s \geq 0 \)
- 增量独立
解析解
利用Ito公式(后文详述),可以求得该SDE的精确解:
\[ N(t) = N_0 \exp\left[\left(r - \frac{\sigma^2}{2}\right)t + \sigma W(t)\right] \]
这个解揭示了一个关键结论:有效增长率不是 \( r \),而是 \( r - \frac{\sigma^2}{2} \)。
- 当 \( r > \frac{\sigma^2}{2} \) 时,种群几乎必然指数增长
- 当 \( r < \frac{\sigma^2}{2} \) 时,种群几乎必然灭绝
- 当 \( r = \frac{\sigma^2}{2} \) 时,种群处于临界状态
这意味着环境噪声本身就会降低种群的长期增长率,即使确定性模型预测增长,噪声过大时种群仍可能灭绝。
统计性质
种群大小的期望:
\[ E[N(t)] = N_0 e^{rt} \]
种群大小的方差:
\[ \text{Var}[N(t)] = N_0^2 e^{2rt}\left(e^{\sigma^2 t} - 1\right) \]
注意期望仍以速率 \( r \) 增长,但方差随时间指数增长,表明预测的不确定性迅速增大。
随机Logistic模型(随机微分方程SDE)
模型建立
将Logistic模型推广到随机情形,考虑环境容纳量或增长率的随机波动:
\[ dN(t) = rN(t)\left(1 - \frac{N(t)}{K}\right)dt + \sigma N(t),dW(t) \]
这是最常用的随机Logistic模型形式,其中:
- 漂移项 \( rN(1 - N/K) \) 代表确定性Logistic增长
- 扩散项 \( \sigma N \) 代表与种群大小成正比的环境噪声
另一种常见形式
当噪声作用于环境容纳量时,模型变为:
\[ dN(t) = rN(t)\left(1 - \frac{N(t)}{K}\right)dt + \sigma N(t)\left(1 - \frac{N(t)}{K}\right)dW(t) \]
此形式中噪声在平衡点附近自然衰减。
平稳分布
对于第一种形式的随机Logistic模型,在适当条件下存在平稳分布。设 \( X = N/K \) 为归一化种群大小,其平稳密度函数满足Fokker-Planck方程。当 \( 2r > \sigma^2 \) 时,平稳分布存在且具有如下形式:
\[ p(x) \propto x^{\frac{2r}{\sigma^2} - 2} \exp\left(-\frac{2r}{\sigma^2 K} x\right), \quad x > 0 \]
这是一个Gamma分布,其均值和方差分别为:
\[ E[N^] \approx K\left(1 - \frac{\sigma^2}{2r}\right), \quad \text{Var}[N^] \approx \frac{K^2 \sigma^2}{2r} \]
灭绝与持久
随机Logistic模型中种群的长期行为取决于参数关系:
- 若 \( r > \frac{\sigma^2}{2} \),种群随机持久,即 \( \liminf_{t\to\infty} N(t) > 0 \) 几乎必然成立
- 若 \( r < \frac{\sigma^2}{2} \),种群几乎必然灭绝,即 \( \lim_{t\to\infty} N(t) = 0 \)
Ito公式简介
背景与动机
在随机分析中,普通的微积分链式法则不再适用。由于维纳过程的路径处处连续但处处不可微,且满足 \( (dW)^2 = dt \),我们需要修正的微分法则——Ito公式。
Ito公式的陈述
设 \( X(t) \) 满足SDE:
\[ dX(t) = a(X,t),dt + b(X,t),dW(t) \]
若 \( f(x,t) \) 是关于 \( x \) 二阶连续可微、关于 \( t \) 一阶连续可微的函数,则:
\[ df(X,t) = \left(\frac{\partial f}{\partial t} + a\frac{\partial f}{\partial x} + \frac{1}{2}b^2\frac{\partial^2 f}{\partial x^2}\right)dt + b\frac{\partial f}{\partial x},dW(t) \]
与确定性情形相比,多出了 \( \frac{1}{2}b^2 \frac{\partial^2 f}{\partial x^2} \) 这一项,称为Ito修正项。
应用:求解随机Malthus模型
对 \( dN = rN,dt + \sigma N,dW \),令 \( Y = \ln N \),则 \( f(x) = \ln x \),有:
\[ \frac{\partial f}{\partial x} = \frac{1}{x}, \quad \frac{\partial^2 f}{\partial x^2} = -\frac{1}{x^2} \]
代入Ito公式:
\[ d(\ln N) = \left(\frac{rN}{N} + \frac{1}{2}(\sigma N)^2 \cdot \left(-\frac{1}{N^2}\right)\right)dt + \frac{\sigma N}{N},dW \]
\[ d(\ln N) = \left(r - \frac{\sigma^2}{2}\right)dt + \sigma,dW \]
积分得:
\[ \ln N(t) - \ln N_0 = \left(r - \frac{\sigma^2}{2}\right)t + \sigma W(t) \]
因此:
\[ N(t) = N_0 \exp\left[\left(r - \frac{\sigma^2}{2}\right)t + \sigma W(t)\right] \]
数值模拟:Euler-Maruyama方法
方法原理
对于一般的SDE:
\[ dX(t) = a(X,t),dt + b(X,t),dW(t) \]
Euler-Maruyama方法是最基本的数值格式。将时间区间 \([0, T]\) 等分为 \( M \) 段,步长 \( \Delta t = T/M \),则:
\[ X_{n+1} = X_n + a(X_n, t_n)\Delta t + b(X_n, t_n)\Delta W_n \]
其中 \( \Delta W_n = W(t_{n+1}) - W(t_n) \sim \mathcal{N}(0, \Delta t) \),即 \( \Delta W_n = \sqrt{\Delta t}, Z_n \),\( Z_n \sim \mathcal{N}(0,1) \) 为独立标准正态随机变量。
收敛性
Euler-Maruyama方法具有:
- 强收敛阶:\( 1/2 \),即 \( E[|X_M - X(T)|] = O(\Delta t^{1/2}) \)
- 弱收敛阶:\( 1 \),即 \( |E[g(X_M)] - E[g(X(T))]| = O(\Delta t) \)
对于需要更高精度的问题,可以使用Milstein方法,其强收敛阶为 \( 1 \):
\[ X_{n+1} = X_n + a\Delta t + b\Delta W_n + \frac{1}{2}b\frac{\partial b}{\partial x}\left((\Delta W_n)^2 - \Delta t\right) \]
对随机Logistic模型的应用
对 \( dN = rN(1 - N/K),dt + \sigma N,dW \),Euler-Maruyama格式为:
\[ N_{n+1} = N_n + rN_n\left(1 - \frac{N_n}{K}\right)\Delta t + \sigma N_n \sqrt{\Delta t}, Z_n \]
需要注意数值解可能出现负值,实际实现中常采用以下策略:
- 取绝对值:\( N_{n+1} = |N_{n+1}| \)
- 反射边界:若 \( N_{n+1} < 0 \),令 \( N_{n+1} = -N_{n+1} \)
- 截断:\( N_{n+1} = \max(N_{n+1}, 0) \)
- 对数变换:对 \( Y = \ln N \) 建立SDE后进行数值模拟
实际案例分析:濒危物种种群模拟
问题背景
某濒危鸟类种群当前数量约为 \( N_0 = 50 \) 只,估计内禀增长率 \( r = 0.03 \)(年),环境容纳量 \( K = 200 \),环境噪声强度 \( \sigma = 0.1 \)。我们需要评估:
- 未来50年内的灭绝概率
- 种群大小的置信区间
- 不同保护策略(降低噪声或提高增长率)的效果比较
模型选择
采用随机Logistic模型:
\[ dN(t) = 0.03 \cdot N(t)\left(1 - \frac{N(t)}{200}\right)dt + 0.1 \cdot N(t),dW(t) \]
验证持久性条件:\( r = 0.03 > \frac{\sigma^2}{2} = 0.005 \),理论上种群应随机持久。但由于初始种群较小,短期内仍存在灭绝风险。
灭绝阈值设定
定义种群灭绝阈值为 \( N_{\text{ext}} = 5 \)(当种群低于此值时认为功能性灭绝)。
Python代码实现:多路径Monte Carlo模拟
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# ============================================================
# 随机Logistic模型的Monte Carlo模拟
# ============================================================
def stochastic_logistic_em(N0, r, K, sigma, T, dt, n_paths, seed=42):
"""
使用Euler-Maruyama方法模拟随机Logistic模型
dN = r*N*(1 - N/K)*dt + sigma*N*dW
参数:
N0: 初始种群大小
r: 内禀增长率
K: 环境容纳量
sigma: 噪声强度
T: 模拟总时间
dt: 时间步长
n_paths: 模拟路径数
seed: 随机种子
返回:
t: 时间数组
paths: 形状为 (n_paths, n_steps+1) 的种群轨迹数组
"""
rng = np.random.default_rng(seed)
n_steps = int(T / dt)
t = np.linspace(0, T, n_steps + 1)
paths = np.zeros((n_paths, n_steps + 1))
paths[:, 0] = N0
sqrt_dt = np.sqrt(dt)
for i in range(n_steps):
N = paths[:, i]
# 生成正态随机增量
dW = sqrt_dt * rng.standard_normal(n_paths)
# Euler-Maruyama更新
drift = r * N * (1 - N / K) * dt
diffusion = sigma * N * dW
paths[:, i + 1] = N + drift + diffusion
# 非负截断(种群不能为负)
paths[:, i + 1] = np.maximum(paths[:, i + 1], 0)
return t, paths
def stochastic_logistic_milstein(N0, r, K, sigma, T, dt, n_paths, seed=42):
"""
使用Milstein方法模拟随机Logistic模型(更高精度)
"""
rng = np.random.default_rng(seed)
n_steps = int(T / dt)
t = np.linspace(0, T, n_steps + 1)
paths = np.zeros((n_paths, n_steps + 1))
paths[:, 0] = N0
sqrt_dt = np.sqrt(dt)
for i in range(n_steps):
N = paths[:, i]
dW = sqrt_dt * rng.standard_normal(n_paths)
# 漂移项: a(N) = r*N*(1 - N/K)
a = r * N * (1 - N / K)
# 扩散项: b(N) = sigma*N
b = sigma * N
# 扩散项导数: b'(N) = sigma
b_prime = sigma
# Milstein格式
paths[:, i + 1] = (N + a * dt + b * dW
+ 0.5 * b * b_prime * (dW**2 - dt))
paths[:, i + 1] = np.maximum(paths[:, i + 1], 0)
return t, paths
def analyze_extinction(paths, threshold=5):
"""
分析灭绝概率和首次灭绝时间
参数:
paths: 模拟路径数组
threshold: 灭绝阈值
返回:
extinction_prob: 灭绝概率
mean_extinction_time: 平均灭绝时间(仅灭绝路径)
"""
n_paths = paths.shape[0]
extinct = np.any(paths <= threshold, axis=1)
extinction_prob = np.mean(extinct)
# 计算首次灭绝时间
extinction_times = []
for i in range(n_paths):
below = np.where(paths[i, :] <= threshold)[0]
if len(below) > 0:
extinction_times.append(below[0])
mean_extinction_time = (np.mean(extinction_times)
if extinction_times else np.inf)
return extinction_prob, mean_extinction_time
def compute_statistics(paths, t):
"""
计算种群统计量:均值、中位数、置信区间
"""
mean_path = np.mean(paths, axis=0)
median_path = np.median(paths, axis=0)
lower_95 = np.percentile(paths, 2.5, axis=0)
upper_95 = np.percentile(paths, 97.5, axis=0)
lower_50 = np.percentile(paths, 25, axis=0)
upper_50 = np.percentile(paths, 75, axis=0)
return {
'mean': mean_path,
'median': median_path,
'ci95_lower': lower_95,
'ci95_upper': upper_95,
'ci50_lower': lower_50,
'ci50_upper': upper_50
}
# ============================================================
# 主要模拟参数
# ============================================================
# 模型参数
N0 = 50 # 初始种群
r = 0.03 # 内禀增长率(年)
K = 200 # 环境容纳量
sigma = 0.1 # 环境噪声强度
T = 50 # 模拟时间(年)
dt = 0.01 # 时间步长
n_paths = 10000 # Monte Carlo路径数
ext_threshold = 5 # 灭绝阈值
# ============================================================
# 运行模拟
# ============================================================
print("=" * 60)
print("随机Logistic人口模型 - Monte Carlo模拟")
print("=" * 60)
print(f"\n模型参数:")
print(f" 初始种群 N0 = {N0}")
print(f" 内禀增长率 r = {r}")
print(f" 环境容纳量 K = {K}")
print(f" 噪声强度 sigma = {sigma}")
print(f" 模拟时间 T = {T} 年")
print(f" Monte Carlo路径数 = {n_paths}")
print(f" 灭绝阈值 = {ext_threshold}")
# 验证持久性条件
print(f"\n持久性条件检验:")
print(f" r = {r}, sigma^2/2 = {sigma**2/2}")
if r > sigma**2 / 2:
print(f" r > sigma^2/2,理论上种群随机持久")
else:
print(f" r <= sigma^2/2,种群可能灭绝")
# Euler-Maruyama模拟
t, paths = stochastic_logistic_em(N0, r, K, sigma, T, dt, n_paths)
# 灭绝分析
ext_prob, mean_ext_time = analyze_extinction(paths, ext_threshold)
print(f"\n灭绝分析结果:")
print(f" {T}年内灭绝概率: {ext_prob:.4f} ({ext_prob*100:.2f}%)")
if mean_ext_time != np.inf:
print(f" 平均灭绝时间: {mean_ext_time * dt:.2f} 年")
# 统计量
stats_result = compute_statistics(paths, t)
print(f"\n终态统计 (t = {T}年):")
print(f" 均值: {stats_result['mean'][-1]:.2f}")
print(f" 中位数: {stats_result['median'][-1]:.2f}")
print(f" 95%置信区间: [{stats_result['ci95_lower'][-1]:.2f}, "
f"{stats_result['ci95_upper'][-1]:.2f}]")
print(f" 50%置信区间: [{stats_result['ci50_lower'][-1]:.2f}, "
f"{stats_result['ci50_upper'][-1]:.2f}]")
# ============================================================
# 保护策略比较
# ============================================================
print("\n" + "=" * 60)
print("保护策略比较")
print("=" * 60)
scenarios = {
"基准情景": {"r": 0.03, "sigma": 0.10},
"降低噪声 (sigma=0.05)": {"r": 0.03, "sigma": 0.05},
"提高增长率 (r=0.06)": {"r": 0.06, "sigma": 0.10},
"综合措施": {"r": 0.06, "sigma": 0.05},
}
print(f"\n{'情景':<25} {'灭绝概率':>10} {'终态均值':>10} {'95%下限':>10}")
print("-" * 60)
for name, params in scenarios.items():
t_s, paths_s = stochastic_logistic_em(
N0, params['r'], K, params['sigma'], T, dt, n_paths
)
ep, _ = analyze_extinction(paths_s, ext_threshold)
final_mean = np.mean(paths_s[:, -1])
final_lower = np.percentile(paths_s[:, -1], 2.5)
print(f" {name:<23} {ep:>9.4f} {final_mean:>10.2f} {final_lower:>10.2f}")
# ============================================================
# 可视化
# ============================================================
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
# 图1: 样本路径
ax = axes[0, 0]
n_show = 20
for i in range(n_show):
ax.plot(t, paths[i, :], alpha=0.3, linewidth=0.5)
ax.axhline(y=K, color='red', linestyle='--', label=f'容纳量 K={K}')
ax.axhline(y=ext_threshold, color='orange', linestyle='--',
label=f'灭绝阈值={ext_threshold}')
ax.set_xlabel('时间 (年)')
ax.set_ylabel('种群大小 N')
ax.set_title('随机Logistic模型样本路径')
ax.legend()
ax.set_ylim(bottom=0)
# 图2: 均值与置信区间
ax = axes[0, 1]
ax.plot(t, stats_result['mean'], 'b-', linewidth=2, label='均值')
ax.plot(t, stats_result['median'], 'g--', linewidth=1.5, label='中位数')
ax.fill_between(t, stats_result['ci95_lower'], stats_result['ci95_upper'],
alpha=0.2, color='blue', label='95% CI')
ax.fill_between(t, stats_result['ci50_lower'], stats_result['ci50_upper'],
alpha=0.3, color='blue', label='50% CI')
ax.axhline(y=K, color='red', linestyle='--', alpha=0.5)
ax.set_xlabel('时间 (年)')
ax.set_ylabel('种群大小 N')
ax.set_title('种群统计量随时间变化')
ax.legend()
ax.set_ylim(bottom=0)
# 图3: 终态分布
ax = axes[1, 0]
final_values = paths[:, -1]
ax.hist(final_values[final_values > 0], bins=50, density=True,
alpha=0.7, edgecolor='black')
ax.axvline(x=np.mean(final_values), color='red', linestyle='--',
label=f'均值={np.mean(final_values):.1f}')
ax.axvline(x=np.median(final_values), color='green', linestyle='--',
label=f'中位数={np.median(final_values):.1f}')
ax.set_xlabel('种群大小 N')
ax.set_ylabel('概率密度')
ax.set_title(f't={T}年时种群大小分布')
ax.legend()
# 图4: 灭绝概率随时间变化
ax = axes[1, 1]
time_points = np.arange(0, len(t), int(1/dt)) # 每年取一个点
ext_probs_over_time = []
for tp in time_points:
# 到时刻tp为止是否曾低于阈值
extinct_by_t = np.any(paths[:, :tp+1] <= ext_threshold, axis=1)
ext_probs_over_time.append(np.mean(extinct_by_t))
ax.plot(t[time_points], ext_probs_over_time, 'r-', linewidth=2)
ax.set_xlabel('时间 (年)')
ax.set_ylabel('累积灭绝概率')
ax.set_title('灭绝概率随时间累积')
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('stochastic_population_simulation.png', dpi=150, bbox_inches='tight')
plt.show()
print("\n模拟完成,图形已保存。")
代码说明
上述代码实现了以下功能:
stochastic_logistic_em函数:使用Euler-Maruyama方法对随机Logistic模型进行数值积分,利用NumPy向量化操作同时生成多条路径stochastic_logistic_milstein函数:提供更高精度的Milstein方法实现analyze_extinction函数:统计灭绝事件的发生概率和时间compute_statistics函数:计算各时刻的统计量和置信区间- 保护策略比较:通过改变参数模拟不同管理方案的效果
- 可视化模块:生成样本路径图、统计量时间序列、终态分布直方图和累积灭绝概率曲线
结果解读
模拟结果通常显示:
- 即使种群满足持久性条件,由于初始规模较小(\( N_0 = 50 \)),短期内仍存在一定的灭绝风险
- 降低环境噪声(如建立保护区减少干扰)对减少灭绝概率效果显著
- 种群终态分布呈现右偏特征,均值高于中位数
- 综合措施(同时提高增长率和降低噪声)的保护效果最佳
应用注意事项与局限性
模型选择
- 噪声类型的选取:环境随机性(影响所有个体)和人口统计随机性(个体水平的随机事件)需要不同的建模方式。对于大种群,环境随机性主导;对于小种群,两者都需考虑
- 噪声结构:乘性噪声 \( \sigma N,dW \) 和加性噪声 \( \sigma,dW \) 具有本质区别,应根据实际机制选择
- 相关噪声:多个种群或多个环境因子之间的噪声相关性可能重要
参数估计
- 增长率 \( r \) 的估计:需要从时间序列数据中分离确定性趋势和随机波动
- 噪声强度 \( \sigma \) 的估计:可通过对数增量的方差估计,即 \( \hat{\sigma}^2 \approx \text{Var}[\ln(N_{t+1}/N_t)] / \Delta t \)
- 数据频率:观测间隔过长会导致参数估计偏差
数值模拟注意事项
- 步长选择:\( \Delta t \) 应远小于 \( 1/r \) 和 \( 1/\sigma^2 \),以保证数值稳定性
- 路径数量:灭绝概率的估计精度为 \( O(1/\sqrt{n_{\text{paths}}}) \),估计小概率事件需要大量路径
- 非负性保持:简单截断可能引入偏差,对数变换方法在理论上更为严谨
- 长时间模拟:误差会随时间累积,需要验证统计量的收敛性
模型局限性
- 高斯假设:维纳过程驱动的SDE假设噪声为高斯分布,无法描述极端事件(如突发疾病、自然灾害)。可使用Levy过程或跳跃扩散模型来处理
- 马尔可夫假设:模型假设未来状态仅依赖当前状态,忽略了种群的年龄结构和历史效应
- 空间均匀性:基本SDE模型不考虑空间异质性和种群的空间分布
- 参数恒定:实际中环境容纳量 \( K \) 和增长率 \( r \) 本身可能是时变的或随机的
- 连续近似:SDE模型将离散的个体数量连续化,当种群极小时这一近似可能失效
拓展方向
- 随机种群博弈模型:将随机性引入演化博弈论
- 随机时滞模型:考虑种群反馈的时间延迟
- 结构化种群模型:引入年龄或阶段结构的随机矩阵模型
- 空间随机模型:随机偏微分方程(SPDE)描述空间扩散
- regime-switching模型:环境在多个状态间随机切换的马尔可夫调制模型