meyer: Meyer Function

View source: R/10_meyer.R

meyerR Documentation

Meyer Function

Description

Test function 10 from the More', Garbow and Hillstrom paper.

Usage

meyer()

Details

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.

Value

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

Note

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.

References

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")}

Examples

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")

jlmelville/funconstrain documentation built on April 17, 2024, 7:47 p.m.