Numerical Gradients and Jacobians
Provides numerical gradients and jacobians.
nl.grad(x0, fn, heps = .Machine$double.eps^(1/3), ...)
x0 |
point as a vector where the gradient is to be calculated. |
fn |
scalar function of one or several variables. |
heps |
step size to be used. |
... |
additional arguments passed to the function. |
Both functions apply the “central difference formula” with step size as recommended in the literature.
grad
returns the gradient as a vector; jacobian
returns the Jacobian as a matrix of usual dimensions.
Hans W. Borchers
fn1 <- function(x) sum(x^2) nl.grad(seq(0, 1, by = 0.2), fn1) ## [1] 0.0 0.4 0.8 1.2 1.6 2.0 nl.grad(rep(1, 5), fn1) ## [1] 2 2 2 2 2 fn2 <- function(x) c(sin(x), cos(x)) x <- (0:1)*2*pi nl.jacobian(x, fn2) ## [,1] [,2] ## [1,] 1 0 ## [2,] 0 1 ## [3,] 0 0 ## [4,] 0 0
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.