View source: R/31_broyden_band.R
broyden_band | R Documentation |
Test function 31 from the More', Garbow and Hillstrom paper.
broyden_band()
The objective function is the sum of m
functions, each of n
parameters.
Dimensions: Number of parameters n
variable, number of summand
functions m = n
.
Minima: f = 0
.
The number of parameters, n
, in the objective function is not
specified when invoking this function. It is implicitly set by the length of
the parameter vector passed to the objective and gradient functions that this
function creates. See the 'Examples' section.
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
Function returning the standard starting point, given
n
, the number of variables desired.
fmin
reported minimum
xmin
parameters at reported minimum
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")}
Broyden, C. G. (1971). The convergence of an algorithm for solving sparse nonlinear systems. Mathematics of Computation, 25(114), 285-294. \Sexpr[results=rd]{tools:::Rd_expr_doi("doi.org/10.1090/S0025-5718-1971-0297122-5")}
btri <- broyden_band()
# 6 variable problem using the standard starting point
x0_6 <- btri$x0(6)
res_6 <- stats::optim(x0_6, btri$fn, btri$gr, method = "L-BFGS-B")
# Standing starting point with 8 variables
res_8 <- stats::optim(btri$x0(8), btri$fn, btri$gr, method = "L-BFGS-B")
# Create your own 4 variable starting point
res_4 <- stats::optim(c(0.1, 0.2, 0.3, 0.4), btri$fn, btri$gr,
method = "L-BFGS-B")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.