Home > freetb4matlab > optim > nelder_mead_min.m

nelder_mead_min

PURPOSE ^

% [x0,v,nev] = nelder_mead_min (f,args,ctl) - Nelder-Mead minimization

SYNOPSIS ^

function [x,v,nev] = nelder_mead_min (f, args, varargin)

DESCRIPTION ^

% [x0,v,nev] = nelder_mead_min (f,args,ctl) - Nelder-Mead minimization
%
% Minimize 'f' using the Nelder-Mead algorithm. This function is inspired
% from the that found in the book 'Numerical Recipes'.
%
% ARGUMENTS
% ---------
% f     : string : Name of function. Must return a real value
% args  : list   : Arguments passed to f.
%      or matrix : f's only argument
% ctl   : vector : (Optional) Control variables, described below
%      or struct
%
% RETURNED VALUES
% ---------------
% x0  : matrix   : Local minimum of f
% v   : real     : Value of f in x0
% nev : number   : Number of function evaluations
% 
% CONTROL VARIABLE : (optional) may be named arguments (i.e. 'name',value
% ------------------ pairs), a struct, or a vector of length <= 6, where
%                    NaN's are ignored. Default values are written <value>.
%  OPT.   VECTOR
%  NAME    POS
% ftol,f  N/A    : Stopping criterion : stop search when values at simplex
%                  vertices are all alike, as tested by 
%
%                   f > (max_i (f_i) - min_i (f_i)) /max(max(|f_i|),1)
%
%                  where f_i are the values of f at the vertices.  <10*eps>
%
% rtol,r  N/A    : Stop search when biggest radius of simplex, using
%                  infinity-norm, is small, as tested by :
%
%              ctl(2) > Radius                                     <10*eps>
%
% vtol,v  N/A    : Stop search when volume of simplex is small, tested by
%            
%              ctl(2) > Vol
%
% crit,c ctl(1)  : Set one stopping criterion, 'ftol' (c=1), 'rtol' (c=2)
%                  or 'vtol' (c=3) to the value of the 'tol' option.    <1>
%
% tol, t ctl(2)  : Threshold in termination test chosen by 'crit'  <10*eps>
%
% narg  ctl(3)  : Position of the minimized argument in args            <1>
% maxev ctl(4)  : Maximum number of function evaluations. This number <inf>
%                 may be slightly exceeded.
% isz   ctl(5)  : Size of initial simplex, which is :                   <1>
%
%                { x + e_i | i in 0..N } 
% 
%                Where x == nth (args, narg) is the initial value 
%                 e_0    == zeros (size (x)), 
%                 e_i(j) == 0 if j ~= i and e_i(i) == ctl(5)
%                 e_i    has same size as x
%
%                Set ctl(5) to the distance you expect between the starting
%                point and the minimum.
%
% rst   ctl(6)   : When a minimum is found the algorithm restarts next to
%                  it until the minimum does not improve anymore. ctl(6) is
%                  the maximum number of restarts. Set ctl(6) to zero if
%                  you know the function is well-behaved or if you don't
%                  mind not getting a true minimum.                     <0>
%
% verbose, v     Be more or less verbose (quiet=0)                      <0>

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Fri 22-May-2009 15:13:00 by m2html © 2003