fminsearch: Removed unnecessary customized options in the demos
[scilab.git] / scilab / modules / optimization / demos / neldermead / neldermead_outputcmd.sce
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008-2009 - INRIA - Michael Baudin
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9
10
11 function [ y , index ] = rosenbrock ( x , index )
12   y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
13 endfunction
14
15
16 //
17 // myoutputcmd --
18 //  This command is called back by the Nelder-Mead
19 //  algorithm.
20 // Arguments
21 //  state : the current state of the algorithm
22 //    "init", "iter", "done"
23 //  data : the data at the current state
24 //    This is a tlist with the following entries:
25 //    * x : the optimal vector of parameters
26 //    * fval : the minimum function value
27 //    * simplex : the simplex, as a simplex object
28 //    * iteration : the number of iterations performed
29 //    * funccount : the number of function evaluations
30 //
31 function myoutputcmd ( state , data )
32   iter = data.iteration
33   if ( state == "init" ) then
34     mprintf ( "=================================\n");
35     mprintf ( "Initialization\n");
36   elseif ( state == "done" ) then
37     mprintf ( "=================================\n");
38     mprintf ( "End of Optimization\n");
39   end
40   fc = data.funccount
41   fval = data.fval
42   x = data.x
43   simplex = data.simplex
44   // Simplex is a data structure, which can be managed
45   // by the optimsimplex class.
46   ssize = optimsimplex_size ( simplex )
47   mprintf ( "Iteration #%d, Feval #%d, Fval = %e, x = %s, Size = %e\n", iter, fc, fval, strcat(string(x)," "), ssize);
48 endfunction
49
50
51 nm = neldermead_new ();
52 nm = neldermead_configure(nm,"-numberofvariables",2);
53 nm = neldermead_configure(nm,"-function",rosenbrock);
54 nm = neldermead_configure(nm,"-x0",[-1.2 1.0]');
55 nm = neldermead_configure(nm,"-maxiter",200);
56 nm = neldermead_configure(nm,"-maxfunevals",300);
57 nm = neldermead_configure(nm,"-tolfunrelative",10*%eps);
58 nm = neldermead_configure(nm,"-tolxrelative",10*%eps);
59 nm = neldermead_configure(nm,"-outputcommand",myoutputcmd);
60 nm = neldermead_search(nm);
61 nm = neldermead_destroy(nm);
62 mprintf("End of demo.\n");
63
64 //
65 // Load this script into the editor
66 //
67 filename = 'neldermead_outputcmd.sce';
68 dname = get_absolute_file_path(filename);
69 editor ( dname + filename );
70