我正在尝试odeint
并收到错误
'在此调用上完成的工作过多(可能是错误的 Dfun 类型)。'。
返回的值对初始值的微小变化也非常敏感。一些初始值不会遇到这个问题,而其他初始值会。
rho = 0.1
beta = 0.01
N = 50
gamma = 0.20
theta = 0.01
delta = 0.1
alpha = 1000
S = 1000
W = 180
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
def model(L,t):
R = (L * delta * alpha * 20) / (2* theta*S*N*W)
dLdt= rho*L-beta*N+(L*delta*alpha*R*W*20)/(N*S)
return dLdt
L0 = 20
# time points
t = np.linspace(0, 500, 1000)
# solve ODE
L, infodict = odeint(model,L0,t,full_output=True)
infodict['message']
输出L
从20
到100
然后尖峰到1.62e+011
再次变为零。