meyer | R Documentation |
Test function 10 from the More', Garbow and Hillstrom paper.
meyer()
The objective function is the sum of m
functions, each of n
parameters.
Dimensions: Number of parameters n = 3
, number of summand
functions m = 16
.
Minima: the MGH (1981) only provides the optimal value, with f
= 87.9458...
. Meyer and Roth (1972) give the optimal parameter values as
(0.0056, 6181.4, 345.2)
, with f = 88
.
A list containing:
fn
Objective function which calculates the value given input
parameter vector.
gr
Gradient function which calculates the gradient vector
given input parameter vector.
he
If available, the hessian matrix (second derivatives)
of the function w.r.t. the parameters at the given values.
fg
A function which, given the parameter vector, calculates
both the objective value and gradient, returning a list with members
fn
and gr
, respectively.
x0
Standard starting point.
fmin
reported minimum
xmin
parameters at reported minimum
The gradient is large even at the optimal value, and enormous if using the level of precision given by Meyer and Roth (smallest gradient component is at least 1e4). It is not recommended to rely on the typical gradient norm termination conditions if using this test function.
More', J. J., Garbow, B. S., & Hillstrom, K. E. (1981). Testing unconstrained optimization software. ACM Transactions on Mathematical Software (TOMS), 7(1), 17-41. \Sexpr[results=rd]{tools:::Rd_expr_doi("doi.org/10.1145/355934.355936")}
Meyer, R. R. (1970). Theoretical and computational aspects of nonlinear regression. In J. B. Rosen, O. L. Mangasarian, and K. Ritter (Eds.) Nonlinear programming (pp465-496). New York: Academic Press.
Meyer, R. R., & Roth, P. M. (1972). Modified damped least squares: an algorithm for non-linear estimation. IMA Journal of Applied Mathematics, 9(2), 218-233. \Sexpr[results=rd]{tools:::Rd_expr_doi("doi.org/10.1093/imamat/9.2.218")}
fun <- meyer()
# Optimize using the standard starting point
x0 <- fun$x0
res_x0 <- stats::optim(par = x0, fn = fun$fn, gr = fun$gr, method =
"L-BFGS-B")
# Use your own starting point
res <- stats::optim(c(0.1, 0.2, 0.3), fun$fn, fun$gr, method = "L-BFGS-B")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.