正如标题所示,我正在寻找一个等效函数或建议如何在MATLAB中实现与deval相同的功能,但在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)
现在我的任务是找出感染人口和恢复人口的数量在哪个时间相同。
我会在使用deval的MATLAB中这样做,我正在寻找这个的Python版本。
答案 0 :(得分:0)
检查以下dsolve
包中的sympy
功能:
http://docs.sympy.org/latest/modules/solvers/ode.html#dsolve
求解任何(支持的)常微分方程和常微分方程组。
此外,使用integrate.solve_ivp
包中的scipy
求解常微分方程组:
该函数在给定初始值
的情况下,数值积分了一个常微分方程组