Numerical Differentiation

pathsim.optim.numerical.num_jac(func, x, r=0.001, tol=1e-16)[source]

Numerically computes the jacobian of the function ‘func’ by central differences.

The stepsize ‘h’ is adaptively computed as a relative perturbation ‘r’ with a small offset to avoid division by zero.

Parameters:
  • func (callable) – function to compute jacobian for

  • x (float, array[float]) – value for function at which the jacobian is evaluated

  • r (float) – relative perturbation

  • tol (float) – tolerance for division by zero clipping

Returns:

jac – 2d jacobian array

Return type:

array[array[float]]

pathsim.optim.numerical.num_autojac(func)[source]

Wraps a function object such that it computes the jacobian of the function with respect to the first argument.

This is intended to compute the jacobian ‘jac(x, u, t)’ of the right hand side function ‘func(x, u, t)’ of numerical integrators with respect to ‘x’.

Parameters:

func (callable) – function to wrap for jacobian

Returns:

wrap_func – wrapped funtion as numerical jacobian of ‘func’

Return type:

callable