投与量を変更した場合の効果

投与量y_0を何倍かに増量(減量)した場合、どうなるか。

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  <- 100 #投与回数
ny <- 2 #初期投与量y0の何倍か
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) #最終的に到達する濃度
#ny倍にする
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) + ny * y0
	max_conc <- append(max_conc, which(blood_conc==max(blood_conc)))
}
#元に戻す
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) #最終的に到達する濃度

y_{max}=\frac{y_0}{1-e^{-kT}}であるから、このとき、n倍投与したとすると、到達濃度はy_{max}^{'}=ny_{max}=\frac{ny_0}{1-e^{-kT}}となる。