Find the minimum or maximum of a function over an interval of real numbers, keeping track of the function arguments and function values that were evaluated.
optimizeWithTrace(f, interval, …,
lower = min(interval), upper = max(interval))
The function to be minimized or maximized.
Numeric vector of length 2 containing the end-points of the interval to be searched.
The lower and upper endpoints of the interval to be searched.
Other arguments passed to optimize
,
including arguments to the function f
.
A list with components
minimum
(or maximum
), the location in the
search interval which yielded the optimum value;
objective
, the value of the function at this
location;
x
, the sequence of locations in the interval that
were considered (in the order considered);
y
, the function values corresponding to x
.
This is a simple wrapper for the optimization routine
optimize
. The function f
will be
optimized by computing its value at several locations in the interval,
as described in the help for optimize
.
This wrapper function stores the locations and
resulting function values, and returns them along with the
result of the optimization.
# NOT RUN {
f <- function (x, a) (x - a)^2
result <- optimizeWithTrace(f, c(0, 1), tol = 0.0001, a = 1/3)
result
curve(f(x, 1/3))
with(result, points(x, y, pch=16))
# }
Run the code above in your browser using DataLab