Python 多重初始条件

2024-05-13 11:33:27 发布

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

我对编程相当陌生。我在课堂上学习了一些R和Matlab,但我正在努力提高对Python的熟悉程度。我正在尝试编写一个模型,在给定多个初始条件的情况下,用数值方法逼近微分方程组。我目前拥有的代码如下:

import matplotlib.pyplot as plt

# parameters
sigma=10
gamma=1
alpha=50
delta=2.1
# initial conditions
B=[100,200]
P=[1,10]
t=0
# counter
dt=0.00005
stop=1
# vector
Bstor=[]
Pstor=[]
tstor=[]
# let's go

for i in B:
    for j in P:
        while t<=stop:
            Bstor.append(i)
            Pstor.append(j)
            tstor.append(t)
            i=i+(sigma-gamma*i-alpha*i*j)*dt
            j=j+(alpha*i*j-delta*j)*dt
            t=t+dt

plt.figure(1)
plt.plot(tstor,Bstor,'-b')
plt.plot(tstor,Pstor,'-r')
plt.xlabel('Time')
plt.ylabel('Number')
plt.show()

这将很好地完成数学运算,但仅适用于p和B的第一个值。如何使方程对每个可能的组合(P[0],B[0]; P[1],B[0]; P[1],B[0]; P[1],B[1])运行?在

谢谢!在


Tags: inalphaforplot编程dtpltsigma
1条回答
网友
1楼 · 发布于 2024-05-13 11:33:27

迭代没有问题。这是个小虫子。您只是忘记了在内部for之前重新初始化t = 0。这就是为什么它只运行一次,因为t <= stop只包含一次内部循环的迭代。这就是为什么你会得到第一个值。在

相关问题 更多 >