Version 2.0.0
23rd May 2022- User documentation
- Recent Changes
-
Code Download
- Double
NS23: Sparse nonlinear over-determined equations: Marquardt method
To solve a system of \(m\) nonlinear equations in \(n\) unknowns, \(\boldsymbol x = x_1 , x_2 ,\ldots, x_n\) of the form \[r_i (\boldsymbol x) = f_i (\boldsymbol x) + \sum_{j=1}^n a_{ij} x_j = 0 \qquad i=1,2,..., m \qquad m\ge n\] where the matrices \(\boldsymbol A = \left\{a_{ij} \right\}_{m \times n}\) and \(\boldsymbol J = \left\{\partial f_i / \partial x_j \right\}_{m\times n}\) are sparse.
The over-determined case, \(m>n\), is handled by taking the solution to be that which minimizes the sum of squares \[S = \sum_{i=1}^m {r_i (\boldsymbol x)}^2.\] his makes the routine suitable for the nonlinear data fitting problem and parameter variances and covariances can be generated. Derivatives are optional and when not provided by the user are estimated using a definite difference approximation.
The algorithm is based on Fletcher’s version of the Marquardt method.
The user must supply the matrix \(\boldsymbol A\) in a condensed form, an initial estimate of \(\boldsymbol x\), and code to calculate \(f_i (\boldsymbol x)\) and optionally the matrix \(\boldsymbol J\).