p.constrain {simecol} | R Documentation |
These functions can be used to transform a vector of data or parameters between unconstrained [-Inf, Inf] and box-constrained representation (interval [lower, upper]).
p.constrain(p, lower = -Inf, upper = Inf, f = 1) p.unconstrain(p, lower = -Inf, upper = Inf, f = 1)
p |
vector of data (e.g. model parameters), |
lower, upper |
vectors with lower resp. upper bounds used for transformation, |
f |
optional scaling factor. |
These functions are employed by fitOdeModel
link{ssqOdeModel}
in order to be able to use the unconstrained optimizers of optim
for
constrained optimization.
The transformation functions are
p' = tan(pi/2 * (2 * p - upper - lower) / (upper - lower)) / f
and its inverse
p = 1/2 * (upper + lower) + (upper - lower) * arctan(f * p')/pi
.
vector with transformed (resp. back-transformed) values.
Reichert, T. (1998) AQUASIM 2.0 User Manual. Computer Program for the Identification and Simulation of Aquatic Systems. Swiss Federal Institute for Environmental Science and Technology (EAWAG), CH - 8600 Duebendorf Switzerland, http://www.aquasim.eawag.ch/e_aquasim_manual.html
fitOdeModel
, link{ssqOdeModel}
xx <- seq(-100, 100, 2) plot(xx, yy<-p.constrain(xx, -20, 45), type="l") points(p.unconstrain(yy, -20, 45), yy, col="red")