23333bb12642645092940d6a1b39bf61feea2b15
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
2 // Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
3 // Copyright (C) 2010 - DIGITEO - Allan CORNET\r
5 //\r
6 // This file must be used under the terms of the CeCILL.\r
7 // This source file is licensed as described in the file COPYING, which\r
8 // you should have received as part of this distribution.  The terms\r
9 // are also available at\r
10 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
11 \r
12 \r
13 function demo_outputcmd()\r
14 \r
15     function [ y , index ] = rosenbrock ( x , index )\r
16         y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
17     endfunction\r
18 \r
19 \r
20     //\r
21     // myoutputcmd --\r
22     //  This command is called back by the Nelder-Mead\r
23     //  algorithm.\r
24     // Arguments\r
25     //  state : the current state of the algorithm\r
26     //    "init", "iter", "done"\r
27     //  data : the data at the current state\r
28     //    This is a tlist with the following entries:\r
29     //    * x : the optimal vector of parameters\r
30     //    * fval : the minimum function value\r
31     //    * simplex : the simplex, as a simplex object\r
32     //    * iteration : the number of iterations performed\r
33     //    * funccount : the number of function evaluations\r
34     // stop : set to %t to interrupt the algorithm\r
35     //\r
36 \r
37     function stop = myoutputcmd ( state , data )\r
38         iter = data.iteration\r
39         if ( state == "init" ) then\r
40             mprintf ( "=================================\n");\r
41             mprintf ( _("Initialization\n"));\r
42         elseif ( state == "done" ) then\r
43             mprintf ( "=================================\n");\r
44             mprintf ( _("End of Optimization\n"));\r
45         end\r
46         fc = data.funccount\r
47         fval = data.fval\r
48         x = data.x\r
49         simplex = data.simplex\r
50         // Simplex is a data structure, which can be managed\r
51         // by the optimsimplex class.\r
52         ssize = optimsimplex_size ( simplex )\r
53         mprintf ( "Iteration #%d, Feval #%d, Fval = %e, x = %s, Size = %e\n", iter, fc, fval, strcat(string(x)," "), ssize);\r
54         stop = %f\r
55     endfunction\r
56 \r
57 \r
69     mprintf(_("End of demo.\n"));\r
70 \r
71     //\r
72     // Load this script into the editor\r
73     //\r
74     m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
75     if(m == 1)\r