optimx speed is not satisfied. So I_optim
is present.
I_optim
: Interface of unified optimization functions.
I_optimx
: deprecated, which is about 10 times slower than I_optim
.
I_optim(prior, FUN, y, t, method = "BFGS", fn = f_goal, ..., use.julia = FALSE) I_optimx(prior, FUN, y, t, method, verbose = FALSE, ...)
prior | A vector of initial values for the parameters for which optimal
values are to be found. |
---|---|
FUN | Fine curve fitting function for goal function |
y | Numeric vector, vegetation index time-series |
t | Numeric vector, |
method |
|
... | other parameters passed to |
use.julia | whether use julia nlminb optimization? |
verbose | If |
convcode
: An integer code. 0 indicates successful convergence.
Various methods may or may not return sufficient information to allow all
the codes to be specified. An incomplete list of codes includes
1
: indicates that the iteration limit maxit
had been reached.
20
: indicates that the initial set of parameters is inadmissible,
that is, that the function cannot be computed or returns an infinite,
NULL, or NA value.
21
: indicates that an intermediate set of parameters is inadmissible.
10
: indicates degeneracy of the Nelder--Mead simplex.
51
: indicates a warning from the "L-BFGS-B"
method; see component
message
for further details.
52
: indicates an error from the "L-BFGS-B"
method; see component
message
for further details.
9999
: error
value
: The value of fn corresponding to par
par
: The best parameter found
nitns
: the number of iterations
fevals
: The number of calls to objective
.
# simulate vegetation time-series FUN = doubleLog_Beck par = c( mn = 0.1 , mx = 0.7 , sos = 50 , rsp = 0.1 , eos = 250, rau = 0.1) par0 = c( mn = 0.15, mx = 0.65, sos = 100, rsp = 0.12, eos = 200, rau = 0.12) t <- seq(1, 365, 8) y <- FUN(par, t)#> Error in doubleLogMain(`_phenofit_cdoubleLog_Beck`, par, t, pred): object '_phenofit_cdoubleLog_Beck' not found#> Error in I_optim(par0, FUN, y, t, methods): object 'y' not foundopt2 <- I_optimx(par0, FUN, y, t, methods)#> Error in I_optimx(par0, FUN, y, t, methods): object 'y' not found# \dontrun{ # microbenchmark::microbenchmark( # opt1 = I_optim (par0, FUN, y, t, methods), # opt2 = I_optimx(par0, FUN, y, t, methods), # times = 2 # ) # }