Algorithm for finding a local minimum of a function
Powell's method, strictly Powell's conjugate direction method, is an algorithm proposed by Michael J. D. Powell for finding a local minimum of a function. The function need not be differentiable, and no derivatives are taken.
The function must be a real-valued function of a fixed number of real-valued inputs. The caller passes in the initial point. The caller also passes in a set of initial search vectors. Typically "N" search vectors (sayformula_1) are passed in which are simply the normals aligned to each axis.
The method minimises the function by a bi-directional search along each search vector, in turn. The bi-directional line search along each search vector can be done by Golden-section search or Brent's method. Let the minima found during each bi-directional line search be formula_2, where formula_3 is the initial starting point and formula_4 is the scalar determined during bi-directional search along formula_5. The new position (formula_6) can then be expressed as a linear combination of the search vectors i.e. formula_7. The new displacement vector (formula_8) becomes a new search vector, and is added to the end of the search vector list. Meanwhile, the search vector which contributed most to the new direction, i.e. the one which was most successful (formula_9), is deleted from the search vector list. The new set of "N" search vectors is formula_10. The algorithm iterates an arbitrary number of times until no significant improvement is made.
The method is useful for calculating the local minimum of a continuous but complex function, especially one without an underlying mathematical definition, because it is not necessary to take derivatives. The basic algorithm is simple; the complexity is in the linear searches along the search vectors, which can be achieved via Brent's method.
References.
 ;templatestyles src="Reflist/styles.css" / ;