Find a local minimum of an n-dimensional function using "Powell's conjugate gradient descent method".
More...
template<class Real, int Dim>
class honey::MinimizeN< Real, Dim >
Find a local minimum of an n-dimensional function using "Powell's conjugate gradient descent method".
template<class Real , int Dim>
Find the minimum of a function within bounds [min,max] using init
as an initial guess.
The algorithm starts at point init
and searches for a minimum along each coordinate axis using the Minimize class. A "conjugate" vector is then created by adding the deltas along each axis. A new starting point is then found by taking the minimum along the conjugate vector. The most successful axis is then replaced with the conjugate to minimize linear dependency. The direction set is cycled and the algorithm repeats to iterMax
.
- Parameters
-
func | |
min | minimum lower bound |
max | minimum upper bound |
init | initial guess of minimum |
- Return values
-
argMin | the function arg that results in the minimum |
valMin | the minimum |