Calculate the jacobian of a function using the complex step method.
Let f be a user-supplied function. Given a point x at which we seek for the Jacobian, the function jacobs returns the Jacobian matrix
d(f(1), ..., df(end))/d(x(1), ..., x(n))
. The function uses the complex step method and thus can be applied to real analytic functions.The optional argument hook is a structure with additional options. hook can have the following fields:
h
- can be used to define the magnitude of the complex step and defaults to 1e-20; steps larger than 1e-3 are not allowed.fixed
- is a logical vector internally usable by some optimization functions; it indicates for which elements of x no gradient should be computed, but zero should be returned.For example:
f = @(x) [x(1)^2 + x(2); x(2)*exp(x(1))]; Df = jacobs ([1, 2], f)