The calculation of the elements of the jacobian matrix requires the values of the derivatives of the model function at the input data points. TCAD model functions are generally smooth but their analytical derivatives are unavailable. Numerical differentiations techniques are used to approximate the derivative using forward differences formulae:
or a central difference ones:
where is the unit vector in the direction and represents a small increment.
It was proven that the use of numerical approximation in the Levenberg-Marquradt algorithm does not jeopardize its convergence properties [16]. It is also known that numerical differentiation is an unstable procedure prone to truncation and subtractive cancellation errors [30]. Decreasing the step size () will reduce the truncation error. Unfortunately a smaller step has the opposite effect on the cancellation error. Selecting the optimal step size for a certain problem is computationally expensive [30] and the benefits achieved are not justifiable as the effect of small errors in the values of the elements of the Jacobian matrix is minor. For this reason, the sizing of the finite difference step is not attempted and a constant increment size is used in evaluating the gradient. Furthermore, to allow for the flexibility to adjust to the specific problem characteristics, the individual size of each parameter step can be adjusted by the user.
Calculation of the numerical approximation of the Jacobian matrix requires model evaluations for the forward difference case and for central differences. To alleviate the computational burden, forward differences are always used except when they become unreliable. This usually happens near the solution when is small, or when the difference in the values of the function is small relative to the step size. In both cases, the central difference formulae is used instead. Finally, a first-order Broyden update scheme is implemented and can also be used to reduce the number of model function computations in the calculation of the approximate Jacobian at the iteration as follows:
This scheme requires only functional evaluation and can be used up to times in sequence after each evaluation of the Jacobian matrix by forward or central differences. A note of caution is due here: For highly nonlinear or poorly conditioned models, the errors encountered in using the Broyden update scheme could cause larger parameter deviation which could result in the trapping of the solution at a local minimum.