aboutsummaryrefslogtreecommitdiff
path: root/R/logistic.solution.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/logistic.solution.R')
-rw-r--r--R/logistic.solution.R55
1 files changed, 55 insertions, 0 deletions
diff --git a/R/logistic.solution.R b/R/logistic.solution.R
index a3bddab3..d9db13d7 100644
--- a/R/logistic.solution.R
+++ b/R/logistic.solution.R
@@ -1,3 +1,58 @@
+#' Logistic kinetics
+#'
+#' Function describing exponential decline from a defined starting value, with
+#' an increasing rate constant, supposedly caused by microbial growth
+#'
+#' @param t Time.
+#' @param parent.0 Starting value for the response variable at time zero.
+#' @param kmax Maximum rate constant.
+#' @param k0 Minumum rate constant effective at time zero.
+#' @param r Growth rate of the increase in the rate constant.
+#' @return The value of the response variable at time \code{t}.
+#' @note The solution of the logistic model reduces to the
+#' \code{\link{SFO.solution}} if \code{k0} is equal to \code{kmax}.
+#' @references FOCUS (2014) \dQuote{Generic guidance for Estimating Persistence
+#' and Degradation Kinetics from Environmental Fate Studies on Pesticides in
+#' EU Registration} Report of the FOCUS Work Group on Degradation Kinetics,
+#' Version 1.1, 18 December 2014
+#' \url{http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics}
+#' @examples
+#'
+#' # Reproduce the plot on page 57 of FOCUS (2014)
+#' plot(function(x) logistic.solution(x, 100, 0.08, 0.0001, 0.2),
+#' from = 0, to = 100, ylim = c(0, 100),
+#' xlab = "Time", ylab = "Residue")
+#' plot(function(x) logistic.solution(x, 100, 0.08, 0.0001, 0.4),
+#' from = 0, to = 100, add = TRUE, lty = 2, col = 2)
+#' plot(function(x) logistic.solution(x, 100, 0.08, 0.0001, 0.8),
+#' from = 0, to = 100, add = TRUE, lty = 3, col = 3)
+#' plot(function(x) logistic.solution(x, 100, 0.08, 0.001, 0.2),
+#' from = 0, to = 100, add = TRUE, lty = 4, col = 4)
+#' plot(function(x) logistic.solution(x, 100, 0.08, 0.08, 0.2),
+#' from = 0, to = 100, add = TRUE, lty = 5, col = 5)
+#' legend("topright", inset = 0.05,
+#' legend = paste0("k0 = ", c(0.0001, 0.0001, 0.0001, 0.001, 0.08),
+#' ", r = ", c(0.2, 0.4, 0.8, 0.2, 0.2)),
+#' lty = 1:5, col = 1:5)
+#'
+#' # Fit with synthetic data
+#' logistic <- mkinmod(parent = mkinsub("logistic"))
+#'
+#' sampling_times = c(0, 1, 3, 7, 14, 28, 60, 90, 120)
+#' parms_logistic <- c(kmax = 0.08, k0 = 0.0001, r = 0.2)
+#' d_logistic <- mkinpredict(logistic,
+#' parms_logistic, c(parent = 100),
+#' sampling_times)
+#' d_2_1 <- add_err(d_logistic,
+#' sdfunc = function(x) sigma_twocomp(x, 0.5, 0.07),
+#' n = 1, reps = 2, digits = 5, LOD = 0.1, seed = 123456)[[1]]
+#'
+#' m <- mkinfit("logistic", d_2_1, quiet = TRUE)
+#' plot_sep(m)
+#' summary(m)$bpar
+#' endpoints(m)$distimes
+#'
+#' @export
logistic.solution <- function(t, parent.0, kmax, k0, r)
{
parent = parent.0 * (kmax / (kmax - k0 + k0 * exp (r * t))) ^(kmax/r)

Contact - Imprint