jenn_samp | R Documentation |
Test function 6 from the More', Garbow and Hillstrom paper.
jenn_samp(m = 10)
m |
Number of summand functions in the objective function. Should be equal to or greater than 2. |
The objective function is the sum of m
functions, each of n
parameters.
Dimensions: Number of parameters n = 2
, number of summand
functions m >= n
.
Minima: f = 124.362...
at (x1 = x2 = 0.2578)
for
m = 10
,
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
This test problem isn't really unconstrained. x1
must take
a value between (-1, 1)
. Included for the sake of completeness.
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")}
Jennrich, R. I., & Sampson, P. F. (1968). Application of stepwise regression to non-linear estimation. Technometrics, 10(1), 63-72.
# Use m = 10 summand functions
fun <- jenn_samp(m = 10)
# Optimize using the standard starting point
# Set 'lower' and 'upper' parameter to constrain par[1]. Only works with
# L-BFGS-B.
x0 <- fun$x0
res_x0 <- stats::optim(par = x0, fn = fun$fn, gr = fun$gr, method =
"L-BFGS-B", lower = -1, upper = 1)
# Use your own starting point
res <- stats::optim(c(0.1, 0.2), fun$fn, fun$gr, method = "L-BFGS-B",
lower = -1, upper = 1)
# Use 20 summand functions
fun20 <- jenn_samp(m = 20)
res <- stats::optim(fun20$x0, fun20$fn, fun20$gr, method = "L-BFGS-B",
lower = -1, upper = 1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.