Ошибка в моем коде Scipy для модели глюкозы в крови - PullRequest
1 голос
/ 26 апреля 2019

Когда я запускаю свой код, я получаю какую-то ошибку и не знаю, почему.

строка 233, в odeint int (bool (tfirst)))

RuntimeError:размер массива, возвращаемого функцией func (3), не совпадает с размером y0 (4).

from scipy.integrate import odeint

# define a function containing the derivatives, i.e. the ODE
def glucose(x,t,params):
    X,I, G, Y = x    
    k, alpha, beta, gamma_X, gamma_I, gamma_G, lamda, delta = params
    derivs = [k - gamma_X * X - beta * I * X + lamda * G * Y,
             alpha * X - gamma_I * I,
             delta * Y - gamma_X * G]
    return derivs



k = 5.625 #set value
alpha = 1.111 #the rate of insulin production
delta= 1 #the rate of glucagon production
beta = 0.2 #glycogen produced based on insulin
lamda= 0.1 #glucose produced based on glycogen
gamma_X = 0.25 #glucose used
gamma_I = 1.0 #insulin turnover
gamma_G= 0.5 #glucagon turnover




params = [k, alpha, beta, gamma_X, gamma_I, delta, gamma_G, lamda]



X = 6
I = 5
G= 4 #Glucagon
Y= 5 #Glycagon 
x0 = [X,I,G,Y]




maxt = 12.0
tstep = 0.05

t = np.arange(0,maxt,tstep)

glucose_out = odeint(glucose, x0, t, args=(params,))

plt.plot(t,glucose_out)

plt.legend(['blood glucose', 'insulin level'])
plt.ylabel('Blood Glucose Level mmol/L , Blood Insulin 10pmol/L')
plt.xlabel('Time/h')
plt.title('Glucose-Insulin Regulation Model')

Как избавиться от ошибки при создании графика?

...