golib
0.5
|
Newton optimisation with linear equality constraints. More...
#include <gonewton.h>
Public Types | |
typedef goMath::Vector< type_ > | vector_type |
typedef goMath::Matrix< type_ > | matrix_type |
typedef goMath::OptFunction< matrix_type, vector_type > | function_type |
![]() | |
typedef goMath::Vector< type_ > | vector_type |
typedef goMath::Matrix< type_ > | matrix_type |
typedef goMath::OptFunction< matrix_type, vector_type > | function_type |
Public Member Functions | |
NewtonOptEq (goAutoPtr< function_type > f, goAutoPtr< matrix_type > A=0, goAutoPtr< vector_type > b=0) | |
Constructor. More... | |
void | setEq (goAutoPtr< matrix_type > A, goAutoPtr< vector_type > b) |
Set the equality constraints ![]() | |
virtual void | solveDirect (vector_type &x) |
Solve without line search. More... | |
virtual void | solveLineSearch (vector_type &x) |
virtual void | cleanup () |
Frees temporary memory. | |
void | initKKT (goSize_t sz) |
Initialise the KKT system. More... | |
virtual void | step (vector_type &x, vector_type &ret) |
Calculate the newton step. More... | |
void | setInfeasible (bool i) |
Set infeasibile start point flag. More... | |
bool | infeasible () const |
Returns the infeasibile start point flag. More... | |
![]() | |
NewtonOpt (goAutoPtr< function_type > f) | |
Constructor. More... | |
void | setF (goAutoPtr< function_type > f) |
Sets the function to be minimised. More... | |
virtual type_ | newtonDecrement (vector_type &x) |
Protected Attributes | |
goAutoPtr< matrix_type > | myA |
goAutoPtr< vector_type > | myB |
matrix_type | myKKT_A |
vector_type | myKKT_x |
vector_type | myKKT_b |
bool | myInfeasible |
![]() | |
goAutoPtr< function_type > | myF |
matrix_type | myHessian |
LineSearch< function_type, vector_type > | myLineSearch |
Newton optimisation with linear equality constraints.
This is the infeasible start Newton method to solve
The Newton step is here calculated by solving
with H(F) the Hessian matrix of F.
|
inline |
|
inline |
Returns the infeasibile start point flag.
If true, the initial point may be infeasible.
|
inline |
Initialise the KKT system.
sets the equality constraint matrix A in the matrix
. The hessian H(F) must be filled by the step() method. If necessary, resizes the right hand side vector
of the system
sz | Dimension of x. |
|
inline |
|
inline |
Set infeasibile start point flag.
i | If true, the initial point is assumed infeasible. |
|
inlinevirtual |
Solve without line search.
Solves directly without line search. The initial point may be infeasible.
x | Initial point |
Reimplemented from goMath::NewtonOpt< type_ >.
|
inlinevirtual |
Calculate the newton step.
x | Point at which to calculate |
ret | Contains the Newton step on return |
Reimplemented from goMath::NewtonOpt< type_ >.