我有一个易感-感染-易感的模型
我已经写了下面的python代码
def SIS(I0, beta, gamma, N=2000):
f1 = N - I0
f2 = -beta * I0
f2 /= N
f2 = 1 - exp(f2)
f3 = gamma * I0
return (f1 * f2) - f3 + I0
我用下面的代码来解决这个问题
I0, beta, gamma, N = 10, 0.2, 0.25, 2000
t = np.linspace(0, 100, 101)
inf = [I0]
for i in t[:-1]:
inf.append(SIS(inf[-1], beta, gamma))
这部分很好。我在寻找二重导数
并针对beta
参数的值进行优化时遇到了麻烦。问题是beta没有给定,而且由于该参数在指数函数范围内,对我来说,得到传染性参数的第10个值,然后把它等于0来求解是没有意义的。m仅给出
。
如果有人能指引我正确的方向,那将是一个很大的帮助。
1条答案
按热度按时间jpfvwuh41#
你可以用有限差分法来近似导数。下面是二阶导数的例子:
其中
solve
可求解最高为t
的递归。