You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python绘制非线性ODE蚊子种群模型结果不符合预期的问题求助

Python绘制非线性ODE蚊子种群模型结果不符合预期的问题求助

我正在尝试绘制这个蚊子种群模型,但一直不确定自己的代码能不能得到合理的结果:

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp


K = 17.3
epsilon = 4.9
r = 2.7
mu = 0.9
gamma = 3.2  
alpha = 4 / (K - epsilon) ** 2  

def mosquito_odes(t, Y, alpha, r, K, epsilon, mu, gamma):
    N, M = Y  
    
    dNdt = alpha * r * (N**2 / (N + M + 1e-6)) * (K - N) * (N - epsilon) - mu * N
    dMdt = gamma * N / (1 + N) - mu * M
    
    return [dNdt, dMdt]

N0 = K/1.5  
M0 = 5.6667   
Y0 = [N0, M0]

T = 5  
t_eval = np.linspace(0, T, 100)  


sol_ode = solve_ivp(
    mosquito_odes,
    [0, T],
    Y0,
    args=(alpha, r, K, epsilon, mu, gamma),
    method="RK45",
    t_eval=t_eval
)


t_vals = sol_ode.t
N_vals, M_vals = sol_ode.y

plt.figure(figsize=(8, 5))
plt.plot(t_vals, N_vals / K, label="Wild Population (N)", linestyle="-", color="b")
plt.plot(t_vals, M_vals / K, label="Sterile Population (M)", linestyle="--", color="r")
plt.axhline(1.9 / K, linestyle="dashed", color="brown", label="Threshold γc=1.9")  # Show threshold
plt.xlabel("Time")
plt.ylabel("Fraction of Population")
plt.title("Non-Spatial Mosquito Population Dynamics")
plt.legend()
plt.grid()
plt.show()

按照这些参数,我原本预期两个ODE的结果都会趋近于0,但实际运行后看起来只有一个趋近于0,这和我的预期完全不符。

备注:内容来源于stack exchange,提问作者big_d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:48:04