如何着手求解微分方程${dP\over dT}=kP\Bigl(1-{P\over M}\Bigr)-\alpha P$?
嘿,这个方程是带衰减项的逻辑斯蒂增长模型,咱们可以通过整理化简+分离变量法来求解,步骤很清晰,我给你拆解一下:
首先先把原方程整理成更简洁的形式,方便后续处理:
原方程:dP/dT = kP(1 - P/M) - αP
第一步:化简方程
先把右边的公因子P提出来:dP/dT = P[ k(1 - P/M) - α ]
展开括号里的项并合并常数:k(1 - P/M) - α = k - (k/M)P - α = (k - α) - (k/M)P
这时候我们可以根据k和α的大小关系,分三种情况讨论,因为这会直接影响解的趋势:
情况1:k > α(增长主导,净增长为正)
令r = k - α(显然r > 0),再令K = M(k - α)/k(K > 0,可以理解为新的环境容纳量),方程就转化为标准逻辑斯蒂方程:dP/dT = rP(1 - P/K)
接下来用分离变量法求解:
- 分离变量,把P和T分到等式两边:
dP/[P(1 - P/K)] = r dT - 对左边做部分分式分解,拆成容易积分的形式:
[1/P + 1/(K - P)] dP = r dT - 两边同时积分(C是积分常数):
ln|P| - ln|K - P| = rT + C - 合并对数项:
ln|P/(K - P)| = rT + C - 两边取自然指数,消去对数:
P/(K - P) = Ae^(rT)(这里A = ±e^C,是任意常数) - 解出P的表达式:
P(T) = (K Ae^(rT))/(1 + Ae^(rT))
如果有初始条件(比如T=0时,P=P₀),代入就能确定A的值:A = P₀/(K - P₀),最终特解为:P(T) = (K P₀ e^(rT))/(K + P₀(e^(rT) - 1))
情况2:k = α(增长与衰减平衡)
这时候原方程化简后会变成一个简单的可分离变量方程:dP/dT = - (k/M)P²
求解步骤:
- 分离变量:
dP/P² = - (k/M) dT - 两边积分:
-1/P = - (k/M)T + C - 整理得到通解:
P(T) = 1/[ (k/M)T + C' ](C'是重新定义的常数,由初始条件确定)
这个解的趋势是:随着T增大,P会逐渐趋近于0;当T趋近于某个临界值时,P会趋向无穷大(取决于初始条件)。
情况3:k < α(衰减主导,净增长为负)
令r = α - k(r > 0),原方程可以整理为:dP/dT = -rP[ 1 + (k/(M r))P ]
同样用分离变量法:
- 分离变量:
dP/[P(1 + (k/(M r))P)] = -r dT - 部分分式分解左边:
[1/P - k/(M r + kP)] dP = -r dT - 积分并整理:
ln|P/(M r + kP)| = -rT + C - 取指数后解出P:
P(T) = (B e^(-rT))/(1 - (k/(M r))B e^(-rT))(B为常数)
代入初始条件后,这个解会显示P随时间逐渐趋近于0,因为衰减的速率超过了增长速率。
最后补充
所有的通解都可以通过初始条件(比如T=0时的种群数量P₀)确定具体的常数,得到符合你场景的特解。如果需要验证解的正确性,把解代回原方程,看两边是否相等就行。
内容的提问来源于stack exchange,提问作者james15c

