R: Numerical Gradient

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 `f`.

### Details

Computes the gradient

(\frac{\partial f}{\partial x_1}, …, \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

`fderiv`

### 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.0.4 Index]