Эквивалент Python эквивалента MATLAB - PullRequest
0 голосов
/ 27 мая 2018

Как видно из заголовка, я ищу эквивалентную функцию или предложение о том, как добиться того же, что делает deval в MATLAB, но в Python.

Код:

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

#define model function that returns ds/dt, di/dt/ and dr/dt

def epidemic_model(state, t):
     s, i, r = state
     d_s = -0.06 * s * i
     d_i = 0.06 *s * i - 7*i
     d_r = 7 * i
     return [d_s, d_i, d_r]


t = np.arange(0, 1, 0.01)
init_state = [990, 10, 0]

state = odeint(epidemic_model, init_state, t)
plt.xlabel('time')
plt.ylabel('population') 
plt.plot(t, state)

Теперь моя задача состоит в том, чтобы определить, когда число зараженной и выздоровевшей популяции одинаково.

Я бы сделал это в MATLAB, используя deval, я ищу Python-версию этого.

1 Ответ

0 голосов
/ 27 мая 2018

Проверьте dsolve функцию в пакете sympy ниже:

http://docs.sympy.org/latest/modules/solvers/ode.html#dsolve

Решает любой (поддерживаемый) тип обыкновенного дифференциального уравнения и систему обыкновенных дифференциальных уравнений.

Кроме того, решите систему обыкновенных дифференциальных уравнений, используя integrate.solve_ivp из пакета scipy:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html#scipy-integrate-solve-ivp

Эта функция численноинтегрирует систему обыкновенных дифференциальных уравнений с заданным начальным значением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...