不给出结果的欧拉函数

2024-06-06 17:39:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我们编写了一个欧拉函数来研究人口的变化。你知道吗

他使用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()

Tags: and函数self脚本绘图plotnpdt
1条回答
网友
1楼 · 发布于 2024-06-06 17:39:21

我看到r初始化为:

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

然后在while循环条件中需要r[i] >0。你知道吗

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

可能缺少r[0] = ...的初始化

相关问题 更多 >