【发布时间】:2017-10-21 12:03:53
【问题描述】:
我有一个捕食者-猎物模型:
dR/dt = λR - aRF
dF/dt = -μF + bRF
其中 λ 和 μ 分别是兔子 (R) 和狐狸 (F) 的生长速率,分别处理。 a是狐狸对兔子的捕食率,b是狐狸捕食兔子的种群增长率。p>
到目前为止,我有以下代码,但我真的很困惑,我的模型哪里出错了?
function PredPrey
lambda = 0.1; % Lambda = Reproduction rate of rabbits
mu = 0.15; % Mu = Death rate of foxes
a = 0.005; % a = Rate of rabbits caught per fox
b = 0.002; % b = foxes born per rabbit caught
N = 3;
R = zeros(1,N);
F = zeros(1,N);
R(1) = 100;
F(1) = 10;
for n = 2:N
R(n) = R(n-1) + lambda*R(n-1) - a*R(n-1)*F(n-1);
F(n) = F(n-1) - mu*F(n-1) + b*a*R(n-1)*F(n-1);
end
Xvals = 1:N;
plot(Xvals,R,'b',Xvals,F,'r')
end
【问题讨论】:
-
“每抓一只兔子生的狐狸”一词在您声明的模型和代码中有所不同。在模型中使用
+bRF,在代码中使用+abRF。正确的选择取决于这个术语代表什么。除此之外,请提供一个清晰的示例,说明您期望的结果与您的实际获得的结果,因为实施似乎还不错。 -
bRF 术语看起来很可疑。你养的兔子越多,下一代的狐狸就越多,但是按照这个说法,如果你有一百万只狐狸和一只兔子,那么你下一代就会有十万只左右的狐狸。这不可能。
-
我想就是这样,谢谢@Wolfie
-
如果这是一个错字并且您的问题无法再重现,您可以考虑删除该问题。否则,请查看 P.Kein 的答案,看看是否对您有帮助。