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]