10.8 Oral 2-Comparment Model with Michaelis-Menten Elimination

Deriv2 = function(Am)
{
  dx1 = -Ka*Am[1]
  dx2 = Ka*Am[1] - Vmax*Am[2]/(Km + Am[2]) - K12*Am[2] + K21*Am[3]
  dx3 = K12*Am[2] - K21*Am[3]
  dx4 = Vmax*Am[2]/(Km + Am[2])
  return(c(dx1, dx2, dx3, dx4))
}

Ka = 3
Vmax = 1
Km = 2
K12 = 4
K21 = 2

A0 = c(10, 0, 0, 0)

nDim = 4
StartTime = 0
EndTime = 24
tau = 0.01
Time = seq(StartTime, EndTime, by=tau)
nStep = length(Time)

State = matrix(nrow=nStep, ncol=nDim)
State[1,] = A0
for (i in 1:(nStep-1)) State[i+1,] = RK4(State[i,], tau, Deriv2)

#windows()
plot(Time, State[,1], type="l")
lines(Time, State[,2], lty=2)
lines(Time, State[,3], lty=3)
lines(Time, State[,4], lty=4)

legend(15,6, legend=c("Depot","Central","Peripheral","Out"), lty=1:4)