igradient

Gradient of a multivariate, scalar-valued function using the complex-step approximation.

Back to Numerical Differentiation Toolbox Contents.

Contents

Syntax

g = igradient(f,x0)
g = igradient(f,x0,h)

Description

g = igradient(f,x0) numerically evaluates the gradient of $f$ with respect to $\mathbf{x}$ at $\mathbf{x}=\mathbf{x}_{0}$ using the complex-step approximation with a default step size of $h=10^{-200}$.

g = igradient(f,x0,h) numerically evaluates the gradient of $f$ with respect to $\mathbf{x}$ at $\mathbf{x}=\mathbf{x}_{0}$ using the complex-step approximation with a user-specified step size $h$.

Input/Output Parameters

Variable Symbol Description Format
Input f multivariate, scalar-valued function () 1×1
function_handle
x0 evaluation point n×1
double
h (OPTIONAL) step size (defaults to ) 1×1
double
Output g gradient of with respect to , evaluated at n×1
double

Note

Example

Approximate the gradient of $f(\mathbf{x})=x_{1}^{5}+\sin^{3}{x_{2}}$ at $\mathbf{x}=\mathbf{x}_{0}=(5,8)^{T}$ using the igradient function, and compare the result to the true result of

$$\nabla f(\mathbf{x}_{0})=\pmatrix{3125\cr3\sin^{2}{(8)}\cos{(8)}}$$

Approximating the gradient,

f = @(x) x(1)^5+sin(x(2))^3;
x0 = [5;8];
g = igradient(f,x0)
g =

   1.0e+03 *

    3.1250
   -0.0004

Calculating the error,

error = g-[3125;3*sin(8)^2*cos(8)]
error =

   1.0e-12 *

    0.4547
    0.0001

See also

cgradient | fgradient