我正在尝试用Python解决/模拟材料平衡方程。当浓度值之一变为负值时,我想停止模拟。我使用了条件语句,然后使用break函数。没有显示错误。我不明白为什么这不起作用。 break语句的位置正确吗?请帮忙!! 这是我的代码:
def simulation(z,t,k):
k1 = k[0]
k2 = k[1]
k3 = k[2]
tol = z[0]
H = z[1]
O = z[2]
dHdt = k1*tol*H - k2*tol*H
dtoldt = (-k1 * tol * H) - (k1 * tol * H) - (k3 * tol * O)
dOdt = -k3*tol*O
for i in range (0,3):
if z[i] < 0:
break
return [dHdt, dtoldt, dOdt]
k = [125.656, 478.36, 2698.3]
t = np.linspace(0, 1000, 100)
z0 = [100, 150, 200]
z = odeint(simulation, z0, t, args=(k,))
print(z)