nlmixrHess | R Documentation |
Unlike 'stats::optimHess' which assumes the gradient is accurate,
nlmixrHess does not make as strong an assumption that the gradient
is accurate but takes more function evaluations to calculate the
Hessian. In addition, this procedures optimizes the forward
difference interval by nlmixrGill83
nlmixrHess(par, fn, ..., envir = parent.frame())
par |
Initial values for the parameters to be optimized over. |
fn |
A function to be minimized (or maximized), with first argument the vector of parameters over which minimization is to take place. It should return a scalar result. |
... |
Extra arguments sent to |
envir |
an environment within which to evaluate the call. This
will be most useful if |
If you have an analytical gradient function, you should use 'stats::optimHess'
Hessian matrix based on Gill83
Matthew Fidler
https://v8doc.sas.com/sashtml/ormp/chap5/sect28.htm
nlmixrGill83
, optimHess
func0 <- function(x){ sum(sin(x)) } x <- (0:10)*2*pi/10 nlmixrHess(x, func0) fr <- function(x) { ## Rosenbrock Banana function x1 <- x[1] x2 <- x[2] 100 * (x2 - x1 * x1)^2 + (1 - x1)^2 } grr <- function(x) { ## Gradient of 'fr' x1 <- x[1] x2 <- x[2] c(-400 * x1 * (x2 - x1 * x1) - 2 * (1 - x1), 200 * (x2 - x1 * x1)) } h1 <- optimHess(c(1.2,1.2), fr, grr) h2 <- optimHess(c(1.2,1.2), fr) ## in this case h3 is closer to h1 where the gradient is known h3 <- nlmixrHess(c(1.2,1.2), fr)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.