|
CONOPT
|
Functions | |
| void | LeastSq2ModelData.buildModel () |
| adds variables and constraints to the model | |
| double | LeastSq2ModelData.evaluateNonlinearTerm (double[] x, int rowno, boolean ignerr, int thread) |
| callback method for evaluating the nonlinear terms in a given row | |
| void | LeastSq2ModelData.evaluateNonlinearJacobian (double[] x, double[] jac, int rowno, int[] jacnum, boolean ignerr, int thread) |
| callback method for evaluating the jacobian for the nonlinear terms in a given row | |
| void | LeastSq2ModelData.evaluateSDLagrangian (double x[], double u[], int[] hessianrow, int[] hessiancol, double[] hessianval) |
| Computes and returns the numerical values of the Lagrangian of the Hessian. | |
This model is similar to leastsq. The key difference is that we supply a callback routine that can compute 2nd derivatives of the model. However, we only include part of the 2nd derivatives corresponding to the direct objective terms, res(i)**2. The terms from b(i,j)*x(j)**2 are ignored in the 2nd derivatives. CONOPT will not notice the incorrect derivatives but it may converge more slowly.
We solve the following nonlinear least squares model:
\[ \min \sum_i res_{i}^2 \!! \sum_j ( a_{ij}x_j + b_{ij}x_j^2 ) + res_i = obs_i \]
where \(a\), \(b\), and \(obs\) are known data, and \(res\) and \(x\) are the variables of the model.
For more information about the individual callbacks, please have a look at the source code.
|
inline |
adds variables and constraints to the model
Definition at line 116 of file leastsq2.java.
|
inline |
callback method for evaluating the nonlinear terms in a given row
| x | the solution vector that needs to be evaluated. |
| rowno | the number for the row in which the nonlinear term exists. |
| ignerr | a boolean to indicate whether the current point is safe or unsafe. |
| thread | the index of the thread from which this method is being called from. |
Notes: an error in the evaluation is reported by calling errorInEvaluation()
Definition at line 191 of file leastsq2.java.
|
inline |
callback method for evaluating the jacobian for the nonlinear terms in a given row
| x | the solution vector that needs to be evaluated. |
| jac | an array to store the Jacobian at the given point and row. This is of length numVar(). |
| rowno | the number for the row in which the nonlinear term exists. |
| jacnum | vector with a list of column numbers for the nonlinear nonzero Jacobian elements in the row. |
| ignerr | a boolean to indicate whether the current point is safe or unsafe. |
| thread | the index of the thread from which this method is being called from. |
Note: an error in the evaluation is reported by calling errorInEvaluation()
Definition at line 217 of file leastsq2.java.
|
inline |
Computes and returns the numerical values of the Lagrangian of the Hessian.
| x | the solution vector that needs to be evaluated. |
| u | the vector of weights on the individual constraints. |
| hessianrow | vector of row numbers of the lower triangular part of the hessian. |
| hessiancol | vector of column numbers of the lower triangular part of the hessian. |
| hessianval | an array to store the Hessian computed at the given point and row. This is of length numHessianNonzeros(). |
Note: an error in the evaluation is reported by calling errorInEvaluation()
Definition at line 238 of file leastsq2.java.