Lotka-Volterra出错的Euler方法?

2024-06-08 09:50:39 发布

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

我试图用欧拉方法建立Lotka-Volterra模型,但是我没有得到正确的图形。这是关于Python的。你知道吗

我尝试过改变tstep和数组,这使它得到了改进。我注意到我的时间步长不能大于0.1,我的数组必须小到50。你知道吗

import math
import numpy as np
import matplotlib.pyplot as plt

alpha=3
beta=0.5
gamma=0.4
delta=3
tstep=0.05

t=np.zeros(50)
P=np.zeros(50)
N=np.zeros(50)
N[0]=2
P[0]=1

for i in range(0,49):
    deltaN= (alpha * N[i] - beta * N[i] * P[i]) * tstep
    deltaP= (gamma * N[i] * P[i] - delta * P[i]) * tstep
    t[i+1]= t[i] + tstep
    N[i+1]=N[i]+deltaN
    P[i+1]=P[i]+deltaP



print t
print"N=", N
print"P=", P    

plt.plot(t,N)
plt.plot(t,P)

我的图不像Lotka-Volterra模型那样振荡。这条线只振荡一次。你知道吗


Tags: 模型importalphaasnpzerosplt数组