grad: Numerical Gradient

Description Usage Arguments Details Value References See Also Examples

View source: R/grad.R

Description

Numerical function gradient.

Usage

1
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
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

Example output

[1] 15 14  4
[1] 1
[1] 0 0

pracma documentation built on Dec. 11, 2021, 9:57 a.m.