跳到正文
格致开物MATHWIKI

洛吉斯蒂模型

洛吉斯蒂模型(logistic growth model)描述增长逐渐受到资源限制的过程。规模较小时接近指数增长;规模接近承载量时,增长放缓。它是连续、确定性的模型,适用于数量可近似连续且环境相对稳定的情形。

个体更多,为什么总增长反而会变慢

设一个教学种群的承载量为1000,资源充足时每个个体的日净增长率为0.4。指数模型会把总增长率写成 0.4N,其中 N 是当前数量;这样长期增长没有上限。

现在假定每个个体的增长率随数量线性下降,到1000时降为零,即取 0.4(1−N/1000)。乘以个体数,得到总增长率 0.4N(1−N/1000)。数量为100时,每日净增长为36;数量为500时为100;数量为900时又回到36。每个个体的增长率一直在下降,总增长率却先升后降,因为参与增长的个体数也在变化。

将具体参数换成一般符号:r>0 是低密度增长率,K>0 是承载量,N(t) 是时间 t 的数量,则 N′=rN(1−NK). 以天为时间单位时,r 的单位为每天,K 与 N 单位相同。展开得到 N′=rN−(r/K)N2:第一项是低密度增长,第二项是密度抑制。这种二次抑制来自“人均增长率线性下降”的模型假设。

先看相线,不急着求公式

令 F(N)=rN(1−N/K)。其零点为 0 和 K,对应两个平衡解。对非负状态,符号分布如下。

状态范围 N′ 的符号 随时间的变化
N=0 零 没有外来输入时始终为零
0<N<K 正 单调增加,趋向承载量
N=K 零 保持平衡
N>K 负 单调下降,趋向承载量

右端是多项式,对 N 局部 Lipschitz 连续,所以给定初值有局部唯一解。轨迹不能在有限时间与某个平衡解相交后又穿过它,否则相交时同一初值将对应两条不同解。因此正初值的轨迹保持为正,从承载量下方出发不会在连续模型中超调到上方。

从承载量两侧出发,变化方向都指向K,所以K是吸引附近轨迹的稳定平衡;微小的正数量却会远离零,零平衡不稳定。下一节的显式解将证明所有正初值在未来都趋向K。

从增长规律求出数量函数

对于 N0>0 且 N0≠K 的非平衡解,分离变量得 dNN(1−N/K)=rdt. 利用部分分式分解,左侧等于 (1/N+1/(K−N))dN,积分得到 log⁡|NK−N|=rt+C. 在不穿过平衡点的区间内,比值 N/(K−N) 的符号固定。指数化并把符号计入常数,得到 N/(K−N)=Cert,其中 C=N0/(K−N0)。交叉相乘为 N(1+Cert)=KCert,再除以 Cert,得到 N(t)=K1+Ae−rt,A=KN0−1. 对于 N0>0 与 t≥0,分母始终为正:当 N0≤K 时 A≥0;当 N0>K 时 −1<A<0,所以分母至少大于等于 1+A=K/N0>0。因此解在所有未来时间存在,并趋于 K。

验证也可以直接完成。求导得 N′=KrAe−rt/(1+Ae−rt)2;而 rN(1−N/K) 化简成完全相同的式子,初值也满足。若 N0=K,取 A=0 得到常值解;若 N0=0,公式中出现除零,必须单独保留 N≡0。在分离变量时除以 N(K−N) 已经暂时排除了两个平衡状态,最后补检不可省略。

这套教材模型与解法可见 OpenStax,§4.4。本文取非负状态与未来时间;负数解不作种群解释。

从100增长到500,再到900

沿用开头的教学参数,取 K=1000、r=0.4 每天、初值 N0=100,则 A=9,所以 N(t)=10001+9e−0.4t. 达到承载量一半时,令 N=500,得到 9e−0.4t=1,故 t=log⁡9/0.4≈5.493 天。达到 900 时,1+9e−0.4t=10/9,因此 e−0.4t=1/81,得到 t=log⁡81/0.4≈10.986 天。

从 100 到 500 与从 500 到 900 的时间在本例恰好相等,这来自洛吉斯蒂曲线围绕拐点的对称结构,而不是说任意两个同样数量增量都花相同时间。若要求恰好达到 1000,式子要求指数项为零,这在有限时间内不会发生;实际报告中的“达到容量”通常需要预先规定误差范围或阈值。

与同参数的指数模型比较,在 10 天时指数预测为 100e4≈5459.8,已经远超承载量;洛吉斯蒂预测约为 858.49。二者差别来自增长率假设,不是同一方程的两种近似解。

初始数量超过承载量时

仍取 K=1000,r=0.4,但初值改为 1500。此时 A=−1/3,解为 N(t)=10001−13e−0.4t. 在所有 t≥0 上,分母从 2/3 增加到 1,数量从 1500 单调下降到 1000。5 天后约为 1047.24。方程中的负增长解释的是净减少,而不是数量变成负数。

该轨迹在未来没有拐点式的先加速增长阶段,也不呈通常展示的完整 S 形。解的形状还取决于初值。若从低于一半承载量的初值出发,才能在未来看见先加速后减速的增长全过程。

拐点与最大增长量从哪里得到

对方程再求导,使用链式法则: N″=rN′(1−2NK). 在增长区间 0<N<K 内,N′>0,因此 N<K/2 时曲线上凹、N>K/2 时下凹,拐点发生在 N=K/2。总增长率也可直接配方: F(N)=rK4−rK(N−K2)2. 因此最大瞬时增长率为 rK/4,在半容量时取得。这里最大的是总增长量,而人均增长率一直随数量增加而下降,两者不冲突。

对 0<N0<K/2,未来拐点时刻为 t∗=(1/r)log⁡(K/N0−1)。若初值已经在 K/2 之上,这个公式给出负值,表示相应拐点属于向过去延拓的轨迹,并未发生在从初始时刻开始的观测区间。计算时必须解释时间原点。

令无量纲变量 x=N/K、τ=rt,方程化为 dx/dτ=x(1−x)。容量只设定纵向尺度,增长率只设定时间尺度,初始比例决定具体轨迹。这个化简有助于比较不同单位、不同规模的模型,也是量纲分析与微分方程结合的例子。

下图左侧横轴是时间,曲线高度是数量;右侧横轴则是数量,曲线高度是增长率。两个金点描述同一个阶段:数量达到500时,左图最陡,右图达到最高点100。数量100与900的增长率同为36,对应右图两个粉点;数量相差很大,增长速度却可以相同。

左图为从一百增长到一千的洛吉斯蒂时间曲线,右图为增长率随数量变化的抛物线,半容量五百时对应最大增长率一百
区分“数量随时间变化”与“增长率随数量变化”,便能看出S形曲线拐点的来源。

从观测中估计增长率与承载量

当所有观测都满足 N≪K 时,方程近似为 N′≈rN。早期数据可能足以估计增长率,却难以区分很大的不同 K,因为相应曲线在这段时间几乎重合。一个拟合软件给出承载量数值,并不意味着数据已经精确识别这个参数。

可以用两条明确曲线看出信息差别。另取一组教学参数:N0=20、r=0.35 每天,分别设 K=800 与 K=1600。第 2 天预测约为 39.28 与 39.77,第 4 天约为 75.35 与 78.12;但第 20 天已分别约为 772.53 与 1492.48。早期差异只有几个单位,长期水平却相差很大。

下图用一个短时间窗口和一个长时间窗口画出同样两条曲线。短窗口没有额外加入测量噪声;它只是显示模型预测本身已很接近。若观测误差与这份差异相当或更大,仅靠早期记录就很难可靠地区分两种容量。

相同初值二十和日增长率零点三五,容量八百与一千六百的两条连续曲线早期接近,长时间后分别接近不同平台。
扩大纵轴或延长观测能帮助看见不同信息;早期近乎相同不意味着长期预测相同。

这通常称为实际可识别性问题:有限且带误差的数据能否精确确定参数。它不同于“即使拥有理想数据也无法区分参数”的结构性问题。对这套方程,若能在两个不同正数量 N1,N2 处准确知道人均增长率 gi=N'i/Ni,则

gi=r−rKNi,s=g2−g1N2−N1=−rK.

由非零斜率 s<0 得 r=g1−sN1,再得 K=−r/s。理想情况下可以区分,不代表对含噪数量数据做差分估计导数后仍然精确;求导常会放大噪声。真实拟合宜回到原始观测误差假设,检查不同参数的预测差异与不确定度。Parameter estimation and uncertainty quantification using information geometry,增长模型的参数分析

如果 K 已知且数据位于 0<N<K,解公式可转为 log⁡N(t)K−N(t)=rt+log⁡N0K−N0. 变换后的量与时间线性相关,可以帮助诊断模型。可是观测误差经过对数与分母变换后会改变分布,在接近 0 或 K 时还可能被明显放大。因此不能不加检查地把变换后最小二乘的统计假设,等同于原始计数误差的假设。


连续模型与离散迭代不能混为一谈

对无量纲方程采用显式欧拉法,以无量纲步长 a=rh 推进,得到 xn+1=xn+axn(1−xn). 这是连续方程的一个数值近似。对平衡 x=1,迭代映射的导数为 1−a,所以局部数值稳定要求 0<a<2。步长过大时,离散序列可能出现超调或不稳定,而原连续正解始终单调趋向平衡。

离散的洛吉斯蒂映射 xn+1=λxn(1−xn) 是另一个模型;本文连续方程的正轨迹单调趋向承载量。

模型还不包含随机灭绝。当数量很小,个体离散性与出生死亡随机性可能重要;连续正初值的确定性轨迹不会自行到达零,但真实小种群可以灭绝。这是状态表示和随机假设的边界,不是求解公式中漏算了某个常数。

增加恒定采收后的阈值

在原模型上加入每单位时间固定移出的数量 H≥0,可得到一个相关但不同的方程 N′=rN(1−N/K)−H。利用前面的配方,平衡点存在的条件是 H≤rK/4。当 0≤H<rK/4 时,有两个平衡数量 N±=K2(1±1−4HrK). 较小的平衡点不稳定,较大的平衡点稳定;两者之间增长为正,低于较小平衡点时增长为负。这个阈值结构说明,即使长期采收量低于最大自然增长量,过低的初始数量仍可能无法恢复。

临界情形 H=rK/4 时,两平衡点合为 K/2,右端为 −(r/K)(N−K/2)2。从上方出发会下降并趋向它;从下方出发则继续下降,因此临界平衡只从一侧吸引。

若 H>rK/4,采收超过了任何状态下的最大自然增长,右端始终为负。方程会把数量向零推动,而继续按同一常数采收可能进一步产生负值;这时必须在零处停止原模型或另加状态约束。现实中不能从空种群移出固定数量,数学式也不会自动知道这一限制。


采收阈值怎样形成分岔

沿用 r=0.4,K=1000,最大自然增长率为 100 个体/天。取采收量 H=84 时,平衡为 300 与 700:在 300 与 700 之间自然增长超过采收,数量上升;在 700 以上则下降。因此 700 吸引附近状态,300 是两侧去向不同的阈值。

把每个 H 对应的两个平衡画在同一图上,会得到两条分支。随着 H 增加,较低的不稳定分支上升,较高的稳定分支下降,在 (H,N)=(100,500) 相遇。超过 100 后没有非负平衡。这就是分岔中常见的鞍结结构;图中的横坐标是模型参数,不是时间。

采收量作为横轴,数量平衡作为纵轴,稳定上支与不稳定下支在采收一百、数量五百相遇;采收八十四对应三百和七百。
实线与虚线表示平衡的稳定性质,而不是已经观测到的种群轨迹。

令 z=N−K/2、μ=rK/4−H,原式恰好化成

z′=μ−rKz2.

于是 μ>0 时有两个平衡,μ=0 时一个,μ<0 时没有。这个代数改写解释了两支为何碰到一起,并把具体采收模型接到一般分岔分析。临界点只从上侧吸引,不能把两条分支相接处简单标成双侧稳定。

接近临界时,稳定平衡的线性回复率也变小。在上支处

F′(N+)=−r1−4HrK.

例如 H=84 时为 −0.16 每天,比无采收容量平衡处的 −0.4 每天弱;当 H→100 时趋于零。小扰动的局部恢复会变慢,但仅凭一次恢复慢的记录,不能独立证明真实系统已接近这一特定分岔,仍需排查其他机制。

再增加机制时,状态与问题怎样改变

基础模型把环境、增长率和容量视为固定,并假定当前数量已经包含未来演化所需的信息。若资源反馈要过一段时间才起作用,可以考虑 N′(t)=rN(t)[1−N(t−τ)/K],其中 τ>0 为延迟;这时要给出一段过去的数量历史,不能只给 N(0)。其稳定性需按时滞微分方程重新分析。

若关注个体数量很小时的随机灭绝,需要把出生、死亡作为随机事件,或在合适尺度下建立随机过程模型;随意给确定曲线添加抖动并不能保证非负性或正确的灭绝概率。随机微分方程会进一步区分漂移和扩散项。

若数量在不同地点之间迁移,状态变为位置和时间的函数。一个常见的扩展方向是把局部洛吉斯蒂增长与空间扩散相加,如 ut=Duxx+ru(1−u/K)。这里 u(x,t) 表示局部密度,D>0 是扩散系数,K 也相应表示密度的容量尺度;模型还需要初始分布与空间边界条件。总量和局部密度不再是同一个变量,先阅读偏微分方程与热方程可以理解扩散项从何而来。这些模型是加入新机制后的新问题,不是原显式解换几个参数就能解决的情形。

容量估计与环境改变的区别

在固定参数模型中,承载量是长期平衡的参数,但未必可以从一次观测最大值直接读取。短期超载状态仍可回落,早期未接近饱和的记录也可能完全低于真正的模型容量。因此观测到的最大值、拟合得到的参数、生态机制允许的资源水平,是三种不同概念。

如果环境在某时刻改变,使容量由 K1 跳到 K2,可以在改变前后分别使用相应方程,并让状态连续接合。数量不会因为参数变化瞬间自动等于新容量;它从当前状态按新的增长规律调整。若新容量比当前数量低,模型预测下降,这与原来仍增长的趋势可以相反。

同样,增长率 r 改变通常调整时间尺度,而改变容量还会影响轨迹的目标水平。比较政策或环境情景时,必须交代究竟改动了哪个参数,不宜把所有干预都画成“曲线更快或更慢”而忽略平衡水平。

历史:Verhulst 的人口模型

比利时数学家皮埃尔-弗朗索瓦·韦吕尔斯特(Pierre-François Verhulst)在 1838 年发表人口增长研究,提出用增长抑制修正指数增长的微分方程。后来他又研究该模型并使用 logistic 名称。这个起点和后续工作可在 圣安德鲁斯大学 MacTutor 的 Verhulst 传记 核验。

今天常用的r、K参数分别突出增长速度与容量。统计学中的logistic回归也使用相关的S形函数,用于描述条件概率,是另一种应用。

与贡珀茨增长的拐点比较

另一种趋于容量的增长模型是贡珀茨模型:N′=aNln⁡(K/N),其中 a>0。它把相对增长率写成对数形式,而本篇洛吉斯蒂模型的相对增长率是 r(1−N/K)。即使两条曲线都有先快后慢的外形,内部的变化机制仍不同。

在 0<N<K 的上升阶段,洛吉斯蒂模型有 N″=r(1−2N/K)N′,所以加速度在 N=K/2 改变符号;贡珀茨模型则有 N″=a[ln⁡(K/N)−1]N′,拐点位于 N=K/e。比较同一初值与容量下的曲线时,仍须说明两个速率参数如何选择,不能仅把符号改名就认为它们代表相同的初始相对增长率。完整推导、对数变换与配图见贡珀茨模型。


来源与继续阅读