|
CONOPT
|
Functions | |
| leastsq2.LeastSqModelData.buildModel (self) | |
| adding the variables and constraints to the model | |
| leastsq2.LeastSqModelData.evaluateNonlinearTerm (self, x, rowno, ignerr, thread) | |
| callback method for evaluating the nonlinear terms in a given row | |
| leastsq2.LeastSqModelData.evaluateNonlinearJacobian (self, x, rowno, jacnum, ignerr, thread) | |
| callback method for evaluating the jacobian for the nonlinear terms in a given row | |
| leastsq2.LeastSqModelData.evaluateSDLagrangian (self, x, u, hessianrow, hessiancol) | |
| 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.
| leastsq2.LeastSqModelData.buildModel | ( | self | ) |
adding the variables and constraints to the model
Definition at line 67 of file leastsq2.py.
| leastsq2.LeastSqModelData.evaluateNonlinearTerm | ( | self, | |
| x, | |||
| rowno, | |||
| ignerr, | |||
| thread ) |
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 134 of file leastsq2.py.
| leastsq2.LeastSqModelData.evaluateNonlinearJacobian | ( | self, | |
| x, | |||
| rowno, | |||
| jacnum, | |||
| ignerr, | |||
| thread ) |
callback method for evaluating the jacobian for 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. |
| 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. |
Notes: an error in the evaluation is reported by calling errorInEvaluation()
Definition at line 158 of file leastsq2.py.
| leastsq2.LeastSqModelData.evaluateSDLagrangian | ( | self, | |
| x, | |||
| u, | |||
| hessianrow, | |||
| hessiancol ) |
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. |
returns a vector for the values of the Lagrangian of the Hessian. The length of the vector is of size numHessianNonzeros().
Notes: an error in the evaluation is reported by calling errorInEvaluation()
Definition at line 177 of file leastsq2.py.