濃度の速度変化は血流中の薬物の濃度に比例する、というモデルを立てると、上の式を用いて
t:時刻
y(t):ある時刻tでの血中濃度
時間間隔TでN回薬物を投与するとする。
薬物を加えた直後では
である。ここから、次回投与t=Tの濃度は
であり、t=Tになった瞬間、薬物を投与すると
次の濃度低下は、y(T)から始まるとすれば、次々回投与t=T~2Tではと置き換えて
(ただし)
t=2Tになったとき、また投与をすると
一般化して
time_interval <- seq(0, 1, by=0.05) #投与間隔 y0 <- 100 #1回の注射で投与する量 k <- 0.2 #上の関数 y <- function(dose_time, y_start){ return(y_start * exp(-k * dose_time)) } N <- 30 #投与回数 blood_conc <- y0 max_conc <- 1 #愚直に計算する for(i in 1:(N - 1)){ blood_conc <- append(blood_conc, y(time_interval, tail(blood_conc, 1))) blood_conc[length(blood_conc)] <- tail(blood_conc, 1) + y0 max_conc <- append(max_conc, which(blood_conc==max(blood_conc))) } plot(blood_conc, ylim=c(0, max(blood_conc)), type="l", xlab="time", ylab="concentration") lines(max_conc, blood_conc[max_conc], lty=2, col=2) #最終的に到達する濃度
投与回数を増やすとある一定濃度に落ち着く。
ここで、のときに求まる濃度をいきなり与えると
blood_conc <- max(blood_conc) max_conc <- 1 #愚直に計算する for(i in 1:(N - 1)){ blood_conc <- append(blood_conc, y(time_interval, tail(blood_conc, 1))) blood_conc[length(blood_conc)] <- tail(blood_conc, 1) + y0 max_conc <- append(max_conc, which(blood_conc==max(blood_conc))) } plot(blood_conc, ylim=c(0, max(blood_conc)), type="l", xlab="time", ylab="concentration") lines(max_conc, blood_conc[max_conc], lty=2, col=2) #最終的に到達する濃度