В конце концов я понял сам и записываю для других людей, которые могут быть невежественны, как я;в odeint
вы задаете три параметра model
, y
и t
, где model
- это функция, которая принимает значения y
и t
, затем возвращает dydt, y
- начальное значениеy
, а t
- это переменная, которую вы пытаетесь взять целочисленной. Если у вас есть несколько дифференциальных уравнений, которые зависят друг от друга, вы можете просто передать все их в odeint
. В моем случае,
t = np.linspace(0, 20) # range of t
y0 = [No_0, Na_0, Ni_0, Nn_0] # initial condition for each Ns
def model(y, t):
No, Na, Ni, Nn = y
dNodt = -k_oa * No
dNadt = k_oa * No - k_ai * Na
dNidt = k_ai * Na - k_in * Ni
dNndt = k_in * Ni
return [dNodt, dNadt, dNidt, dNndt]
y = odeint(model, y0, t)
Вы можете определить несколько дифференциальных уравнений, которые вы хотите решить, в пределах определяемой вами модели и передать odeint
вместе с начальными значениями для всех видов.