2.2碎片

作者:CS数模
链接:https://www.zhihu.com/question/642456117/answer/3384320467
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

import numpy as np
import matplotlib.pyplot as plt

# 模型参数
alpha = 0.1  # 雄性相对于资源的生长率
beta = 0.05  # 雄性相对于数量的死亡率
gamma = 0.08  # 雌性相对于资源的生长率
delta = 0.03  # 雌性相对于数量的死亡率

# 初始条件
M_0 = 100  # 初始雄性数量
F_0 = 100  # 初始雌性数量
P_0 = M_0 + F_0  # 初始总体数量
R_0 = 0.5  # 初始资源可用性

# 模拟时间参数
dt = 0.1  # 时间步长
t_max = 100  # 模拟时间
num_steps = int(t_max / dt) + 1

# 初始化数组
time = np.linspace(0, t_max, num_steps)
M = np.zeros(num_steps)
F = np.zeros(num_steps)
P = np.zeros(num_steps)
R = np.zeros(num_steps)

# 设置初始条件
M[0] = M_0
F[0] = F_0
P[0] = P_0
R[0] = R_0

# Euler 方法求解微分方程
for i in range(1, num_steps):
    dM_dt = alpha * R[i-1] - beta * M[i-1]
    dF_dt = gamma * R[i-1] - delta * F[i-1]
    dP_dt = dM_dt + dF_dt

    M[i] = M[i-1] + dt * dM_dt
    F[i] = F[i-1] + dt * dF_dt
    P[i] = P[i-1] + dt * dP_dt
    R[i] = R[i-1]  # 在这个简单的模型中,我们假设资源可用性保持不变

# 绘制结果
plt.figure(figsize=(10, 6))
plt.plot(time, M, label='Male Population')
plt.plot(time, F, label='Female Population')
plt.plot(time, P, label='Total Population')

作者:CS数模
链接:https://www.zhihu.com/question/642456117/answer/3384320467
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

import numpy as np
import matplotlib.pyplot as plt

# 模型参数
alpha = 0.1  # 雄性相对于资源的生长率
beta = 0.05  # 雄性相对于数量的死亡率
gamma = 0.08  # 雌性相对于资源的生长率
delta = 0.03  # 雌性相对于数量的死亡率
rho = 0.02   # 繁殖成功率常数
eta = 0.01   # 捕食者的攻击率常数

# 初始条件
M_0 = 100  # 初始雄性数量
F_0 = 100  # 初始雌性数量
P_0 = M_0 + F_0  # 初始总体数量
R_0 = 0.5  # 初始资源可用性

# 模拟时间参数
dt = 0.1  # 时间步长
t_max = 100  # 模拟时间
num_steps = int(t_max / dt) + 1

# 初始化数组
time = np.linspace(0, t_max, num_steps)
M = np.zeros(num_steps)
F = np.zeros(num_steps)
P = np.zeros(num_steps)
R = np.zeros(num_steps)
B = np.zeros(num_steps)
H = np.zeros(num_steps)

# 设置初始条件
M[0] = M_0
F[0] = F_0
P[0] = P_0
R[0] = R_0
B[0] = 0
H[0] = 10  # 初始捕食者数量

# Euler 方法求解微分方程
for i in range(1, num_steps):
    dM_dt = alpha * R[i-1] - beta * M[i-1]
    dF_dt = gamma * R[i-1] - delta * F[i-1]
    dP_dt = dM_dt + dF_dt

    dB_dt = rho * p_f * (1 - p_f)
    dH_dt = eta * P[i-1]

    M[i] = M[i-1] + dt * dM_dt
    F[i] = F[i-1] + dt * dF_dt
    P[i] = P[i-1] + dt * dP_dt

 

作者:CS数模
链接:https://www.zhihu.com/question/642456117/answer/3384320467
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

import numpy as np
import matplotlib.pyplot as plt

# 模型参数
alpha = 0.1  # 雄性相对于资源的生长率
beta = 0.05  # 雄性相对于数量的死亡率
gamma = 0.08  # 雌性相对于资源的生长率
delta = 0.03  # 雌性相对于数量的死亡率
rho = 0.02   # 繁殖成功率常数
epsilon = 0.01  # 海蟒鳗鱼与其他生态系统成员相互作用的强度
eta = 0.01   # 捕食者的攻击率常数
xi = 0.005   # 捕食者对海蟒鳗鱼的捕食受到其他生态系统成员的影响的强度
zeta = 0.02  # 其他生态系统成员的自然死亡率常数
omega = 0.01  # 其他生态系统成员与海蟒鳗鱼相互作用的强度

# 初始条件
M_0 = 100  # 初始雄性数量
F_0 = 100  # 初始雌性数量
P_0 = M_0 + F_0  # 初始总体数量
R_0 = 0.5  # 初始资源可用性
B_0 = 0  # 初始成功繁殖的数量
H_0 = 10  # 初始捕食者数量
N_0 = 50  # 初始其他生态系统成员的数量

# 模拟时间参数
dt = 0.1  # 时间步长
t_max = 100  # 模拟时间
num_steps = int(t_max / dt) + 1

# 初始化数组
time = np.linspace(0, t_max, num_steps)
M = np.zeros(num_steps)
F = np.zeros(num_steps)
P = np.zeros(num_steps)
R = np.zeros(num_steps)
B = np.zeros(num_steps)
H = np.zeros(num_steps)
N = np.zeros(num_steps)

# 设置初始条件
M[0] = M_0
F[0] = F_0
P[0] = P_0
R[0] = R_0
B[0] = B_0
H[0] = H_0
N[0] = N_0

# Euler 方法求解微分方程
for i in range(1, num_steps):
    p_m = M[i-1] / P[i-1]
    p_f = F[i-1] / P[i-1]

    dM_dt = alpha * R[i-1] - beta * M[i-1] - epsilon * N[i-1] * M[i-1]
    dF_dt = gamma * R[i-1] - delta * F[i-1] - epsilon * N[i-1] * F[i-1]
    dP_dt = dM_dt + dF_dt

    dB_dt = rho * p_f * (1 - p_f)
    dH_dt = eta * P[i-1] - xi * N[i-1] * H[i-1]
    dN_dt = -zeta * N[i-1] + omega * P[i-1]

    M[i] = M[i-1] + dt * dM_dt
    F[i] = F[i-1] + dt * dF_dt
    P[i] = P[i-1] + dt * dP_dt#见完整版

作者:CS数模
链接:https://www.zhihu.com/question/642456117/answer/3384320467
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

import numpy as np
import matplotlib.pyplot as plt

# 模型参数
alpha = 0.1  # 雄性相对于资源的生长率
beta = 0.05  # 雄性相对于数量的死亡率
gamma = 0.08  # 雌性相对于资源的生长率
delta = 0.03  # 雌性相对于数量的死亡率
rho = 0.02   # 繁殖成功率常数
epsilon = 0.01  # 海蟒鳗鱼与寄生物相互作用的强度
eta = 0.01   # 寄生物攻击宿主的强度
xi = 0.005   # 寄生物对宿主的寄生率
zeta = 0.02  # 寄生物的自然死亡率常数

# 初始条件
M_0 = 100  # 初始雄性数量
F_0 = 100  # 初始雌性数量
P_0 = M_0 + F_0  # 初始总体数量
R_0 = 0.5  # 初始资源可用性
B_0 = 0  # 初始成功繁殖的数量
H_0 = 10  # 初始寄生物数量

# 模拟时间参数
dt = 0.1  # 时间步长
t_max = 100  # 模拟时间
num_steps = int(t_max / dt) + 1

# 初始化数组
time = np.linspace(0, t_max, num_steps)
M = np.zeros(num_steps)
F = np.zeros(num_steps)
P = np.zeros(num_steps)
R = np.zeros(num_steps)
B = np.zeros(num_steps)
H = np.zeros(num_steps)

# 设置初始条件
M[0] = M_0
F[0] = F_0
P[0] = P_0
R[0] = R_0
B[0] = B_0
H[0] = H_0

# Euler 方法求解微分方程
for i in range(1, num_steps):
    p_m = M[i-1] / P[i-1]
    p_f = F[i-1] / P[i-1]

    dM_dt = alpha * R[i-1] - beta * M[i-1] - epsilon * H[i-1] * M[i-1]
    dF_dt = gamma * R[i-1] - delta * F[i-1] - epsilon * H[i-1] * F[i-1]
    dP_dt = dM_dt + dF_dt

    dB_dt = rho * p_f * (1 - p_f)
    dH_dt = eta * P[i-1] - xi * H[i-1] * M[i-1] - zeta * H[i-1]

    M[i] = M[i-1] + dt * dM_dt
    F[i] = F[i-1] + dt * dF_dt
    P[i] = P[i-1] + dt * dP_dt#见完整版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值