Python逻辑方程函数
Python Function about Logistic Equation
表示每年人口规模变化的原始逻辑函数为delta_N=r*(1-N/K)*N。我正在尝试编写一个新函数,它接受 r、K、N0(N 的初始值,代表初始人口规模)和 t(年数)和 return 之后的人口 N t 年。下面是我的代码。它确实有效,但是当我插入 t=0(这应该意味着时间没有变化)时,它仍然 return 一些与 N0 不同的 N(这意味着我的代码可能是错误的?)。人们知道我如何修复我的代码吗?
def equation2(r,K,N0,t):
i=0
N=N0
while i<=t:
Nf=N+(r*(1-N/K)*N)
N=Nf
i=i+1
return Nf
我发现您的代码有 2 个潜在问题:
- 为你的函数插入 t = 0 仍然会进入你的
while
循环一次,因为它会检查 0<=0
即 true
。您需要从您的条件 中删除 =
标志
- 修复后,
Nf
传入t = 0时会是undefined,这个也要相应处理
def equation2(r,K,N0,t):
i=0
N=N0
while i<t:
N += (r*(1-N/K)*N)
i=i+1
return N
表示每年人口规模变化的原始逻辑函数为delta_N=r*(1-N/K)*N。我正在尝试编写一个新函数,它接受 r、K、N0(N 的初始值,代表初始人口规模)和 t(年数)和 return 之后的人口 N t 年。下面是我的代码。它确实有效,但是当我插入 t=0(这应该意味着时间没有变化)时,它仍然 return 一些与 N0 不同的 N(这意味着我的代码可能是错误的?)。人们知道我如何修复我的代码吗?
def equation2(r,K,N0,t):
i=0
N=N0
while i<=t:
Nf=N+(r*(1-N/K)*N)
N=Nf
i=i+1
return Nf
我发现您的代码有 2 个潜在问题:
- 为你的函数插入 t = 0 仍然会进入你的
while
循环一次,因为它会检查0<=0
即true
。您需要从您的条件 中删除 - 修复后,
Nf
传入t = 0时会是undefined,这个也要相应处理
=
标志
def equation2(r,K,N0,t):
i=0
N=N0
while i<t:
N += (r*(1-N/K)*N)
i=i+1
return N