aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--DESCRIPTION4
-rw-r--r--R/mkinfit.R7
-rw-r--r--R/mkinplot.R2
-rw-r--r--R/mkinpredict.R3
-rw-r--r--man/mkinfit.Rd10
-rw-r--r--man/mkinpredict.Rd29
6 files changed, 33 insertions, 22 deletions
diff --git a/DESCRIPTION b/DESCRIPTION
index 46dda226..62c98813 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -2,8 +2,8 @@ Package: mkin
Type: Package
Title: Routines for fitting kinetic models with one or more state
variables to chemical degradation data
-Version: 0.9-05
-Date: 2012-06-28
+Version: 0.9-06
+Date: 2012-07-03
Author: Johannes Ranke, Katrin Lindenberger, René Lehmann
Maintainer: Johannes Ranke <jranke@uni-bremen.de>
Description: Calculation routines based on the FOCUS Kinetics Report (2006).
diff --git a/R/mkinfit.R b/R/mkinfit.R
index 3100b30f..02155966 100644
--- a/R/mkinfit.R
+++ b/R/mkinfit.R
@@ -29,7 +29,7 @@ mkinfit <- function(mkinmod, observed,
solution_type = "auto",
plot = FALSE, quiet = FALSE,
err = NULL, weight = "none", scaleVar = FALSE,
- atol = 1e-6, n.outtimes = 100,
+ atol = 1e-8, rtol = 1e-10, n.outtimes = 100,
trace_parms = FALSE,
...)
{
@@ -130,7 +130,7 @@ mkinfit <- function(mkinmod, observed,
parms <- backtransform_odeparms(odeparms, mod_vars)
# Solve the system with current transformed parameter values
- out <- mkinpredict(mkinmod, parms, odeini, outtimes, solution_type = solution_type, ...)
+ out <- mkinpredict(mkinmod, parms, odeini, outtimes, solution_type = solution_type, atol = atol, rtol = rtol, ...)
assign("out_predicted", out, inherits=TRUE)
@@ -146,7 +146,7 @@ mkinfit <- function(mkinmod, observed,
outtimes_plot = seq(min(observed$time), max(observed$time), length.out=100)
out_plot <- mkinpredict(mkinmod, parms, odeini, outtimes_plot,
- solution_type = solution_type, ...)
+ solution_type = solution_type, atol = atol, rtol = rtol, ...)
plot(0, type="n",
xlim = range(observed$time), ylim = range(observed$value, na.rm=TRUE),
@@ -198,6 +198,7 @@ mkinfit <- function(mkinmod, observed,
data$variable <- ordered(data$variable, levels = obs_vars)
fit$data <- data[order(data$variable, data$time), ]
fit$atol <- atol
+ fit$rtol <- rtol
fit$parms.all <- parms.all # Return all backtransformed parameters for summary
fit$odeparms.final <- parms.all[mkinmod$parms] # Return ode parameters for further fitting
fit$date <- date()
diff --git a/R/mkinplot.R b/R/mkinplot.R
index 7641d262..546c5061 100644
--- a/R/mkinplot.R
+++ b/R/mkinplot.R
@@ -18,7 +18,7 @@ mkinplot <- function(fit, xlab = "Time", ylab = "Observed", xlim = range(fit$dat
odeparms <- parms.all[odenames]
out <- mkinpredict(fit$mkinmod, odeparms, odeini, outtimes,
- solution_type = solution_type, ...)
+ solution_type = solution_type, atol = fit$atol, rtol = fit$rtol, ...)
# Plot the data and model output
plot(0, type="n",
diff --git a/R/mkinpredict.R b/R/mkinpredict.R
index 493c5781..5170dc6b 100644
--- a/R/mkinpredict.R
+++ b/R/mkinpredict.R
@@ -18,7 +18,7 @@
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <http://www.gnu.org/licenses/>
-mkinpredict <- function(mkinmod, odeparms, odeini, outtimes, solution_type = "deSolve", map_output = TRUE, atol = 1e-6, ...) {
+mkinpredict <- function(mkinmod, odeparms, odeini, outtimes, solution_type = "deSolve", map_output = TRUE, atol = 1e-8, rtol = 1e-10, ...) {
# Get the names of the state variables in the model
mod_vars <- names(mkinmod$diffs)
@@ -92,6 +92,7 @@ mkinpredict <- function(mkinmod, odeparms, odeini, outtimes, solution_type = "de
func = mkindiff,
parms = odeparms,
atol = atol,
+ rtol = rtol,
...
)
}
diff --git a/man/mkinfit.Rd b/man/mkinfit.Rd
index 5f70dae9..181da4bd 100644
--- a/man/mkinfit.Rd
+++ b/man/mkinfit.Rd
@@ -17,7 +17,7 @@ mkinfit(mkinmod, observed,
solution_type = "auto",
plot = FALSE, quiet = FALSE, err = NULL, weight = "none",
scaleVar = FALSE,
- atol = 1e-6, n.outtimes,
+ atol = 1e-8, rtol = 1e-10, n.outtimes = 100,
trace_parms, ...)
}
\arguments{
@@ -84,8 +84,12 @@ mkinfit(mkinmod, observed,
to the number of observations.
}
\item{atol}{
- Absolute error tolerance, passed to \code{\link{ode}}. Default is 1e-6 as in
- \code{\link{lsoda}}.
+ Absolute error tolerance, passed to \code{\link{ode}}. Default is 1e-8,
+ lower than in \code{\link{lsoda}}.
+ }
+ \item{rtol}{
+ Absolute error tolerance, passed to \code{\link{ode}}. Default is 1e-10,
+ much lower than in \code{\link{lsoda}}.
}
\item{n.outtimes}{
The length of the dataseries that is produced by the model prediction
diff --git a/man/mkinpredict.Rd b/man/mkinpredict.Rd
index d2931443..a8ece47f 100644
--- a/man/mkinpredict.Rd
+++ b/man/mkinpredict.Rd
@@ -9,42 +9,47 @@
initial values for the state variables.
}
\usage{
-mkinpredict(mkinmod, odeparms, odeini, outtimes, solution_type = "deSolve", map_output = TRUE, atol = 1e-06, ...)
+ mkinpredict(mkinmod, odeparms, odeini, outtimes, solution_type = "deSolve", map_output = TRUE,
+ atol = 1e-08, rtol = 1e-10, ...)
}
\arguments{
\item{mkinmod}{
A kinetic model as produced by \code{\link{mkinmod}}.
-}
+ }
\item{odeparms}{
A numeric vector specifying the parameters used in the kinetic model, which is generally
defined as a set of ordinary differential equations.
-}
+ }
\item{odeini}{
A numeric vectory containing the initial values of the state variables of the model. Note
that the state variables can differ from the observed variables, for example in the case
of the SFORB model.
-}
+ }
\item{outtimes}{
A numeric vector specifying the time points for which model predictions should be
generated.
-}
+ }
\item{solution_type}{
The method that should be used for producing the predictions. This should
generally be "analytical" if there is only one observed variable, and usually
"deSolve" in the case of several observed variables. The third possibility "eigen"
is faster but produces results that the author believes to be less accurate.
-}
+ }
\item{map_output}{
Boolean to specify if the output should list values for the observed variables (default)
or for all state variables (if set to FALSE).
-}
+ }
\item{atol}{
- Absolute error tolerance, passed to \code{\link{ode}}. Default is 1e-6 as in
- \code{\link{lsoda}}.
-}
+ Absolute error tolerance, passed to \code{\link{ode}}. Default is 1e-8,
+ lower than in \code{\link{lsoda}}.
+ }
+ \item{rtol}{
+ Absolute error tolerance, passed to \code{\link{ode}}. Default is 1e-10,
+ much lower than in \code{\link{lsoda}}.
+ }
\item{\dots}{
- Further arguments passed to the ode solver in case such a solver is used.
-}
+ Further arguments passed to the ode solver in case such a solver is used.
+ }
}
\value{
A matrix in the same format as the output of \code{\link{ode}}.

Contact - Imprint