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 个潜在问题:

  1. 为你的函数插入 t = 0 仍然会进入你的 while 循环一次,因为它会检查 0<=0true。您需要从您的条件
  2. 中删除 = 标志
  3. 修复后,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