Как остановить запуск функции при возникновении условия на python? - PullRequest
0 голосов
/ 01 декабря 2019

Я пытаюсь решить / смоделировать уравнение баланса материала в Python. Я хочу остановить симуляцию, когда одно из значений концентрации становится отрицательным. Я использовал условный оператор с последующей функцией перерыва. Ошибка не отображается. Я не понимаю, почему это не работает. Правильно ли размещено заявление о разрыве? Пожалуйста помоги!! Вот мой код:

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)
...