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
11 function [ y , index ] = rosenbrock ( x , index )
12   y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
13 endfunction
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