I have initial condition, rate constant, and ODEs written in a function but cannot run it with ode45. I tried a few different methods but still not able to solve it. I believe there’s something wrong with my function here. Help and guidance will be much appreciated. Output the ode45 integration result.Â
code:Â
% coagulation model 1996 RAS
% ode45 solver
% initial condition IC
XIa = 0.3; % nM
IXa = 0;
Xa = 0;
II = 1000; % nM <- prothrombin
IIa = 0; % <- thrombin
VIIIa = 0;
APC = 0;
Va = 0;
Ia = 0; % fibrin
Z = 0;
W = 0;
% putting all initial condition into one variable
IC = [XIa IXa Xa II IIa VIIIa APC Va Ia Z W];
y0 = zeros(8,1);Â
tspan = [0 100]; % 0 to 100 mins – time scale
[t,IXa, Xa, IIa, II, VIIIa, Va, APC, Ia] = ode45(@ODEsystem,tspan,IC);
plot(t,IXa, Xa, IIa, II, VIIIa, Va, APC, Ia,’-o’);Â
function dydt = ODEsystem(t, IXa, Xa, IIa, II, VIIIa, Va, APC, Ia)
% kinetic constant for thrombin generation model
k9 = 20; % min.^-1
h9 = 0.2; % min.^-1
k8 = 0.00001; % min.^-1
h8 = 0.31; % min.^-1
ka = 1.2; % nM.^-1 min.^-1
k5 = 0.17; % min.^-1
h5 = 0.31; % min.^-1
kcat = 24; % min.^-1
km = 20; % nM
kd = 1; % nM
k10_catmax = 0.003; % min.^-1 or = 500
h10 = 1; % min.^-1
k2_catmax = 2.3; % min.^-1 or = 2000
h2 = 1.3; % min.^-1
k_apc = 0.0014; % min.^-1
h_apc = 0.1; % min.^-1
k1 = 2.82; % min.^-1
k11 = 0.0078; % min.^-1
h11 = 0.2; % min.^-1
% 8 ODEsÂ
dIxadt = k9*XIa – h9*IXa;
dXadt = k10*IXa + k10*Z – h10*Xa;
dIIadt = k2*Xa*(II/(II+K2m)) + k2*W*(II/(II+K2m)) – h2*IIa;
dIIdt = -k2*Xa*(II/(II+K2m)) – k2*W*(II/(II+K2m));
dVIIIadt = k8*IIa – h8*VIIIa – ka*APC*(VIIIa+Z);
dVadt = k5*IIa – h5*Va – ka*APC*(Va+W);
dAPCdt = k_apc*IIa – h_apc*APC;
dIadt = k1*IIa;
end