MATLAB File Help: cv.ConjGradSolver Index
cv.ConjGradSolver

Non-linear non-constrained minimization of a function with known gradient.

defined on an n-dimensional Euclidean space, using the Nonlinear Conjugate Gradient method. The implementation was done based on the beautifully clear explanatory article:

An Introduction to the Conjugate Gradient Method Without the Agonizing Pain http://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf by Jonathan Richard Shewchuk.

The method can be seen as an adaptation of a standard Conjugate Gradient method (see, for example http://en.wikipedia.org/wiki/Conjugate_gradient_method) for numerically solving the systems of linear equations.

It should be noted, that this method, although deterministic, is rather a heuristic method and therefore may converge to a local minima, not necessary a global one. What is even more disastrous, most of its behaviour is ruled by gradient, therefore it essentially cannot distinguish between local minima and maxima. Therefore, if it starts sufficiently near to the local maximum, it may converge to it. Another obvious restriction is that it should be possible to compute the gradient of a function at any point, thus it is preferable to have analytic expression for gradient and computational burden should be born by the user.

The latter responsibility is accompilished via the getGradient method of the function being optimized). This method takes point a point in n-dimensional space (input argument represents the array of coordinates of that point) and comput its gradient (it should be returned in the output as an array).

NOTE: term criteria should meet one of the following conditions:

See also
Class Details
Superclasses handle
Sealed false
Construct on load false
Constructor Summary
ConjGradSolver Creates an ConjGradSolver object. 
Property Summary
ObjectiveFunction The optimized function represented by a structure with the 
TermCriteria Terminal criteria for solver. 
id Object ID 
Method Summary
  addlistener Add listener for event. 
  clear Clears the algorithm state. 
  delete Destructor 
  empty Returns true if the Algorithm is empty. 
  eq == (EQ) Test handle equality. 
  findobj Find objects matching specified conditions. 
  findprop Find property of MATLAB handle object. 
  ge >= (GE) Greater than or equal relation for handles. 
  getDefaultName Returns the algorithm string identifier. 
  gt > (GT) Greater than relation for handles. 
Sealed   isvalid Test handle validity. 
  le <= (LE) Less than or equal relation for handles. 
  load  
  lt < (LT) Less than relation for handles. 
  minimize Runs the algorithm and performs the minimization. 
  ne ~= (NE) Not equal relation for handles. 
  notify Notify listeners of event. 
  save