Function describing exponential decline from a defined starting value, with an increasing rate constant, supposedly caused by microbial growth

Function describing exponential decline from a defined starting value, with an increasing rate constant, supposedly caused by microbial growth

logistic.solution(t, parent_0, kmax, k0, r)

logistic.solution(t, parent_0, kmax, k0, r)

Arguments

t

Time.

parent_0

Starting value for the response variable at time zero.

kmax

Maximum rate constant.

k0

Minumum rate constant effective at time zero.

r

Growth rate of the increase in the rate constant.

parent.0

Starting value for the response variable at time zero.

Value

The value of the response variable at time t.

Note

The solution of the logistic model reduces to the SFO.solution if k0 is equal to kmax.

The solution of the logistic model reduces to the SFO.solution if k0 is equal to kmax.

References

FOCUS (2014) “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 http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics

See also

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)
#> Error in (function (t, parent_0, kmax, k0, r) { parent = parent_0 * (kmax/(kmax - k0 + k0 * exp(r * t)))^(kmax/r)})(t = c(0, 1, 1.21212121212121, 2.42424242424242, 3, 3.63636363636364, 4.84848484848485, 6.06060606060606, 7, 7.27272727272727, 8.48484848484848, 9.6969696969697, 10.9090909090909, 12.1212121212121, 13.3333333333333, 14, 14.5454545454545, 15.7575757575758, 16.969696969697, 18.1818181818182, 19.3939393939394, 20.6060606060606, 21.8181818181818, 23.030303030303, 24.2424242424242, 25.4545454545455, 26.6666666666667, 27.8787878787879, 28, 29.0909090909091, 30.3030303030303, 31.5151515151515, 32.7272727272727, 33.9393939393939, 35.1515151515152, 36.3636363636364, 37.5757575757576, 38.7878787878788, 40, 41.2121212121212, 42.4242424242424, 43.6363636363636, 44.8484848484849, 46.0606060606061, 47.2727272727273, 48.4848484848485, 49.6969696969697, 50.9090909090909, 52.1212121212121, 53.3333333333333, 54.5454545454545, 55.7575757575758, 56.969696969697, 58.1818181818182, 59.3939393939394, 60, 60.6060606060606, 61.8181818181818, 63.030303030303, 64.2424242424242, 65.4545454545455, 66.6666666666667, 67.8787878787879, 69.0909090909091, 70.3030303030303, 71.5151515151515, 72.7272727272727, 73.9393939393939, 75.1515151515152, 76.3636363636364, 77.5757575757576, 78.7878787878788, 80, 81.2121212121212, 82.4242424242424, 83.6363636363636, 84.8484848484848, 86.0606060606061, 87.2727272727273, 88.4848484848485, 89.6969696969697, 90, 90.9090909090909, 92.1212121212121, 93.3333333333333, 94.5454545454545, 95.7575757575758, 96.969696969697, 98.1818181818182, 99.3939393939394, 100.606060606061, 101.818181818182, 103.030303030303, 104.242424242424, 105.454545454545, 106.666666666667, 107.878787878788, 109.090909090909, 110.30303030303, 111.515151515152, 112.727272727273, 113.939393939394, 115.151515151515, 116.363636363636, 117.575757575758, 118.787878787879, 120), parent.0 = c(parent = 101.95687), kmax = 0.1, k0 = 1e-04, r = 0.2): unbenutztes Argument (parent.0 = 101.95687)
#> Timing stopped at: 0.001 0 0.001
#> Error in identical(fit$err_mod, "const"): Objekt 'm' nicht gefunden
summary(m)$bpar
#> Error in summary(m): Objekt 'm' nicht gefunden
endpoints(m)$distimes
#> Error in endpoints(m): Objekt 'm' nicht gefunden
# 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)
#> Error in (function (t, parent_0, kmax, k0, r) { parent = parent_0 * (kmax/(kmax - k0 + k0 * exp(r * t)))^(kmax/r)})(t = c(0, 1, 1.21212121212121, 2.42424242424242, 3, 3.63636363636364, 4.84848484848485, 6.06060606060606, 7, 7.27272727272727, 8.48484848484848, 9.6969696969697, 10.9090909090909, 12.1212121212121, 13.3333333333333, 14, 14.5454545454545, 15.7575757575758, 16.969696969697, 18.1818181818182, 19.3939393939394, 20.6060606060606, 21.8181818181818, 23.030303030303, 24.2424242424242, 25.4545454545455, 26.6666666666667, 27.8787878787879, 28, 29.0909090909091, 30.3030303030303, 31.5151515151515, 32.7272727272727, 33.9393939393939, 35.1515151515152, 36.3636363636364, 37.5757575757576, 38.7878787878788, 40, 41.2121212121212, 42.4242424242424, 43.6363636363636, 44.8484848484849, 46.0606060606061, 47.2727272727273, 48.4848484848485, 49.6969696969697, 50.9090909090909, 52.1212121212121, 53.3333333333333, 54.5454545454545, 55.7575757575758, 56.969696969697, 58.1818181818182, 59.3939393939394, 60, 60.6060606060606, 61.8181818181818, 63.030303030303, 64.2424242424242, 65.4545454545455, 66.6666666666667, 67.8787878787879, 69.0909090909091, 70.3030303030303, 71.5151515151515, 72.7272727272727, 73.9393939393939, 75.1515151515152, 76.3636363636364, 77.5757575757576, 78.7878787878788, 80, 81.2121212121212, 82.4242424242424, 83.6363636363636, 84.8484848484848, 86.0606060606061, 87.2727272727273, 88.4848484848485, 89.6969696969697, 90, 90.9090909090909, 92.1212121212121, 93.3333333333333, 94.5454545454545, 95.7575757575758, 96.969696969697, 98.1818181818182, 99.3939393939394, 100.606060606061, 101.818181818182, 103.030303030303, 104.242424242424, 105.454545454545, 106.666666666667, 107.878787878788, 109.090909090909, 110.30303030303, 111.515151515152, 112.727272727273, 113.939393939394, 115.151515151515, 116.363636363636, 117.575757575758, 118.787878787879, 120), parent.0 = c(parent = 101.95687), kmax = 0.1, k0 = 1e-04, r = 0.2): unbenutztes Argument (parent.0 = 101.95687)
#> Timing stopped at: 0 0 0
#> Error in identical(fit$err_mod, "const"): Objekt 'm' nicht gefunden
summary(m)$bpar
#> Error in summary(m): Objekt 'm' nicht gefunden
endpoints(m)$distimes
#> Error in endpoints(m): Objekt 'm' nicht gefunden