| grad {pracma} | R Documentation |
Numerical Gradient
Description
Numerical function gradient.
Usage
grad(f, x0, heps = .Machine$double.eps^(1/3), ...)
Arguments
f |
function of several variables. |
x0 |
point where the gradient is to build. |
heps |
step size. |
... |
more variables to be passed to function |
Details
Computes the gradient
(\frac{\partial f}{\partial x_1}, \ldots, \frac{\partial f}{\partial x_n})
numerically using the “central difference formula”.
Value
Vector of the same length as x0.
References
Mathews, J. H., and K. D. Fink (1999). Numerical Methods Using Matlab. Third Edition, Prentice Hall.
See Also
Examples
f <- function(u) {
x <- u[1]; y <- u[2]; z <- u[3]
return(x^3 + y^2 + z^2 +12*x*y + 2*z)
}
x0 <- c(1,1,1)
grad(f, x0) # 15 14 4 # direction of steepest descent
sum(grad(f, x0) * c(1, -1, 0)) # 1 , directional derivative
f <- function(x) x[1]^2 + x[2]^2
grad(f, c(0,0)) # 0 0 , i.e. a local optimum
[Package pracma version 2.4.4 Index]