欧拉函数没有给出结果

时间:2015-05-29 15:36:47

标签: python matplotlib

我们编写了一个Euler函数来研究人口变化。

他使用while循环将我们的值保持在生物范围内(没有生育等)。当我们运行脚本时,绘图轴的范围是-0.6到+0.6,实际上没有绘制图形。

有谁知道代码有什么问题?

t=np.zeros((n+1))

for i in range (n):
     t[i+1]=t[i]+dt

s = np.zeros((n+1))
z = np.zeros((n+1))
r = np.zeros((n+1))
s[0] = N-1
z[0] =1
i=0


while s[i]>0 and s[i] <N and z[i] < N and z[i] > 0 and r[i] >0 and r[i] <N and i<n: 
    s[i+1] = s[i]+dt*(-b*s[i]*z[i])
    z[i+1] = z[i]+dt*(b*s[i]*z[i]-a*z[i])
    r[i+1] = r[i]+dt*(a*z[i])
    i=i+1

self.trace(t,s,r,z,i)

def trace(self,t, s, r, z, i):

       plt.plot(t[:i],s[:i],'b')
       plt.plot(t[:i],z[:i],'r')
       plt.plot(t[:i],r[:i],'y')
       plt.show()

1 个答案:

答案 0 :(得分:4)

我看到r初始化为:

r = np.zeros((n+1))

然后在while循环条件下,您需要r[i] >0

由于i=0r[i]=0和条件将为false,因此循环不会执行。

也许您错过了r[0] = ...

的初始化