help-octave
[Top][All Lists]

## Optimization toolbox (re-starting)

 From: Etienne Grossmann Subject: Optimization toolbox (re-starting) Date: Thu, 11 Jan 2001 09:53:03 +0000 User-agent: WEMI/1.13.7 (Shimada) FLIM/1.13.2 (Kasanui) Emacs/20.7 (i386-debian-linux-gnu) (with unibyte mode)

```  Hello,

I almost completed a general minimization function. The synopsis is
as follows :

======================================================================
[x0,v,nev] = powell_min (f,args,ctl) - Minimize f using Powell's method

ARGUMENTS
f     : string : Name of function. Must return a real value
args  : list   : Arguments passed to f.
or RxC    : f's only argument
ctl   : 4      : (Optional) Control variables, described below

RETURNED VALUES
x0  : RxC  : Local minimum of f
v   : 1    : Value of f in x0
nev : 1    : Number of function evaluations

CONTROL VARIABLES
ctl(1)       : 1 or 2 : Select stopping criterion amongst :
ctl(1)==1    : Stopping criterion : Stop search when value doesn't
improve, as tested by

ctl(2) > Deltaf/max(|f(x)|,1)

where Deltaf is the decrease in f observed in the last
iteration (each iteration consists R*C line searches).
ctl(1)==2    : Stopping criterion : Stop search when updates are small,
as tested by

ctl(2) > max { dx(i)/max(|x(i)|,1) | i in 1..N }

where  dx is the change in the x that occured in the last
iteration.                                 Default=1

ctl(2)       : Threshold used in stopping tests.          Default=sqrt(eps)
ctl(3)       : Position of the minimized argument in args Default=1
ctl(4)       : Maximum number of function evaluations     Default=inf

Default values will be used if ctl is not passed. nan's are replaced
by default values.
======================================================================

Any comments, suggestions? My intent was to have a function with
little overhead (no named options) and still be flexible : extra
parameters can be passed to minimized function.

I plan to write minimization functions that use 1st (conjugate
gradient method) and 2nd (Newton-like method) for minimizing
functions. The synopsis would be of the same kind. Also, I will write
a fancier front-end function like "minimize (f, args, options)" with
named options, mostly for command-line usage.

Cheers,

Etienne

ps : The function "powell_min" evaluates the minimized function
exclusively through my function "leval" ([...] = leval (f,list)).
mainstream octave as a built-in function rather than a
m-file. Should I send a patch to the documentation (for
2.1.3[23])?

-------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.

Octave's home on the web:  http://www.octave.org
How to fund new projects:  http://www.octave.org/funding.html
Subscription information:  http://www.octave.org/archive.html
-------------------------------------------------------------

```