Python 多个初始条件
Python Multiple Initial Conditions
我对编程还很陌生。我在 类 中学习了一些 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]
),如何得到 运行 的方程?
谢谢!
迭代没有问题。这是一个小错误。您只是忘记在内部 for
之前重新初始化 t = 0
。这就是为什么它是 运行 once 因为 t <= stop
只适用于内部循环的一次迭代。这就是您获得第一个值的原因。
我对编程还很陌生。我在 类 中学习了一些 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]
),如何得到 运行 的方程?
谢谢!
迭代没有问题。这是一个小错误。您只是忘记在内部 for
之前重新初始化 t = 0
。这就是为什么它是 运行 once 因为 t <= stop
只适用于内部循环的一次迭代。这就是您获得第一个值的原因。