Bug #7674: In all demos Optimization and Simulation, editor(script) was replaced... 50/8450/6
Adeline CARNIS [Tue, 31 Jul 2012 14:34:19 +0000 (16:34 +0200)]
Change-Id: I551cb26c907b98e3ea1348c4757b4869438a341e

28 files changed:
scilab/CHANGES_5.4.X
scilab/modules/optimization/demos/neldermead/fminsearch_display.sce
scilab/modules/optimization/demos/neldermead/fminsearch_optimplotfunccount.sce
scilab/modules/optimization/demos/neldermead/fminsearch_optimplotfval.sce
scilab/modules/optimization/demos/neldermead/fminsearch_optimplotx.sce
scilab/modules/optimization/demos/neldermead/fminsearch_outputfunction.sce
scilab/modules/optimization/demos/neldermead/fminsearch_rosenbrock.sce
scilab/modules/optimization/demos/neldermead/fminsearch_tolx.sce
scilab/modules/optimization/demos/neldermead/neldermead_boxbounds.sce
scilab/modules/optimization/demos/neldermead/neldermead_boxpost.sce
scilab/modules/optimization/demos/neldermead/neldermead_boxproblemA.sce
scilab/modules/optimization/demos/neldermead/neldermead_boxproblemB.sce
scilab/modules/optimization/demos/neldermead/neldermead_dimension.sce
scilab/modules/optimization/demos/neldermead/neldermead_outputcmd.sce
scilab/modules/optimization/demos/neldermead/neldermead_rosenbrock.sce
scilab/modules/optimization/demos/neldermead/nmplot_han1.sce
scilab/modules/optimization/demos/neldermead/nmplot_han2.sce
scilab/modules/optimization/demos/neldermead/nmplot_mckinnon.sce
scilab/modules/optimization/demos/neldermead/nmplot_mckinnon2.sce
scilab/modules/optimization/demos/neldermead/nmplot_quadratic.fixed.sce
scilab/modules/optimization/demos/neldermead/nmplot_quadratic.fixed2.sce
scilab/modules/optimization/demos/neldermead/nmplot_quadratic.variable.sce
scilab/modules/optimization/demos/neldermead/nmplot_quadratic.variable2.sce
scilab/modules/optimization/demos/neldermead/nmplot_rosenbrock.fixed.sce
scilab/modules/optimization/demos/neldermead/nmplot_rosenbrock.sce
scilab/modules/optimization/demos/optim/optim_output.sce
scilab/modules/optimization/demos/optim/optim_rosenbrock.sce
scilab/modules/optimization/demos/optim/optim_withderivative.sce

index 35819fb..87a3467 100644 (file)
@@ -4,6 +4,11 @@
 Bug Fixes
 =========
 
+* Bug #7674 fixed - In all demos Optimization and Simulation, the source
+                    code was displayed by default.
+                    A messagebox now lets the choice to the user to display the
+                    code or not.
+
 * Bug #8151 fixed - Under Mac OS X, item "Scilab/Quit Scilab" and "File/Quit" were
                     duplicates.
 
index 4d5bb72..635ddf5 100644 (file)
@@ -1,38 +1,49 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_fmin_display()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function y = banana (x)
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-  
-  opt = optimset ( "Display" , "iter" );
-  [x fval] = fminsearch ( banana , [-1.2 1] , opt );
-  
-  //
-  // Display results
-  //
-  mprintf("x = %s\n", strcat(string(x)," "));
-  mprintf("fval = %e\n", fval);
-  
-  //
-  // Load this script into the editor
-  //
-  filename = 'fminsearch_display.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-  
-endfunction
-
-demo_fmin_display();
-clear demo_fmin_display;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_fmin_display()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function y = banana (x)\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+    opt = optimset ( "Display" , "iter" );\r
+    [x fval] = fminsearch ( banana , [-1.2 1] , opt );\r
+\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x = %s\n", strcat(string(x)," "));\r
+    mprintf("fval = %e\n", fval);\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'fminsearch_display.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename, "readonly" );\r
+    end \r
+endfunction\r
+\r
+demo_fmin_display();\r
+clear demo_fmin_display;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 06f1caf..fd6d7e0 100644 (file)
@@ -1,38 +1,38 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_funccount()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function y = banana (x)
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-  
-  opt = optimset ( "PlotFcns" , optimplotfunccount );
-  [x fval] = fminsearch ( banana , [-1.2 1] , opt );
-  
-  //
-  // Display results
-  //
-  mprintf("x = %s\n", strcat(string(x)," "));
-  mprintf("fval = %e\n", fval);
-  
-  //
-  // Load this script into the editor
-  //
-  filename = 'fminsearch_optimplotfunccount.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_funccount();
-clear demo_funccount;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_funccount()\r
+\r
+  mprintf(_("Running optimization ...\n"));\r
+\r
+  function y = banana (x)\r
+    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+  endfunction\r
+  \r
+  opt = optimset ( "PlotFcns" , optimplotfunccount );\r
+  [x fval] = fminsearch ( banana , [-1.2 1] , opt );\r
+  demo_viewCode("fminsearch_optimplotfunccount.sce");\r
+  \r
+  //\r
+  // Display results\r
+  //\r
+  mprintf("x = %s\n", strcat(string(x)," "));\r
+  mprintf("fval = %e\n", fval);\r
+\r
+endfunction\r
+\r
+demo_funccount();\r
+clear demo_funccount;\r
+\r
+\r
+\r
+\r
+\r\r
index 98f3819..cb63f45 100644 (file)
@@ -1,39 +1,37 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2009 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-
-function demo_plotfval()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function y = banana (x)
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-  
-  opt = optimset ( "PlotFcns" , optimplotfval );
-  [x fval] = fminsearch ( banana , [-1.2 1] , opt );
-  
-  //
-  // Display results
-  //
-  mprintf("x = %s\n",strcat(string(x)," "));
-  mprintf("fval = %e\n",fval);
-  
-  //
-  // Load this script into the editor
-  //
-  filename = 'fminsearch_optimplotfval.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_plotfval();
-clear demo_plotfval;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2009 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+\r
+function demo_plotfval()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function y = banana (x)\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+    opt = optimset ( "PlotFcns" , optimplotfval );\r
+    [x fval] = fminsearch ( banana , [-1.2 1] , opt );\r
+    demo_viewCode("fminsearch_optimplotfval.sce");\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x = %s\n",strcat(string(x)," "));\r
+    mprintf("fval = %e\n",fval);\r
+endfunction\r
+\r
+demo_plotfval();\r
+clear demo_plotfval;\r
+\r
+\r
+\r
+\r
+\r\r
index 20b3d82..e8017c0 100644 (file)
@@ -1,39 +1,36 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-
-function demo_plotx()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function y = banana (x)
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-  
-  opt = optimset ( "PlotFcns" , optimplotx );
-  [x fval] = fminsearch ( banana , [-1.2 1] , opt );
-  
-  //
-  // Display results
-  //
-  mprintf("x=%s\n",strcat(string(x)," "));
-  mprintf("fval=%e\n",fval);
-  
-  //
-  // Load this script into the editor
-  //
-  filename = 'fminsearch_optimplotx.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-  
-endfunction
-
-demo_plotx();
-clear demo_plotx;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012- Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+\r
+function demo_plotx()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function y = banana (x)\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+    opt = optimset ( "PlotFcns" , optimplotx );\r
+    [x fval] = fminsearch ( banana , [-1.2 1] , opt );\r
+    demo_viewCode("fminsearch_optimplotx.sce");\r
+\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x=%s\n",strcat(string(x)," "));\r
+    mprintf("fval=%e\n",fval);\r
+endfunction\r
+\r
+demo_plotx();\r
+clear demo_plotx;\r
+\r
+\r
+\r\r
index 446bd5b..6ffc80f 100644 (file)
@@ -1,58 +1,68 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - 2011 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_outputfunction()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function y = banana (x)
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-
-  function stop = outfun ( x , optimValues , state )
-    fc = optimValues.funccount;
-    fv = optimValues.fval;
-    it = optimValues.iteration;
-    pr = optimValues.procedure;
-    mprintf ( "%d %e %d -%s-\n" , fc , fv , it , pr )
-       stop = %f
-  endfunction
-  
-  opt = optimset ( "OutputFcn" , outfun );
-  [x,fval,exitflag,output ] = fminsearch ( banana , [-1.2 1] , opt );
-  
-  //
-  // Display results
-  //
-  mprintf("x = %s\n",strcat(string(x)," "));
-  mprintf("fval = %e\n",fval);
-
-  mprintf("output.message:\n");
-  
-  for i =1:3
-    mprintf(output.message(i));
-    mprintf("\n");
-  end
-  
-  mprintf("output.algorithm:%s\n",output.algorithm);
-  mprintf("output.funcCount:%d\n",output.funcCount);
-  mprintf("output.iterations:%d\n",output.iterations);
-  
-  //
-  // Load this script into the editor
-  //
-  filename = 'fminsearch_outputfunction.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_outputfunction();
-clear demo_outputfunction;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_outputfunction()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function y = banana (x)\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+    function stop = outfun ( x , optimValues , state )\r
+        fc = optimValues.funccount;\r
+        fv = optimValues.fval;\r
+        it = optimValues.iteration;\r
+        pr = optimValues.procedure;\r
+        mprintf ( "%d %e %d -%s-\n" , fc , fv , it , pr )\r
+        stop = %f\r
+    endfunction\r
+\r
+    opt = optimset ( "OutputFcn" , outfun );\r
+    [x,fval,exitflag,output ] = fminsearch ( banana , [-1.2 1] , opt );\r
+\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x = %s\n",strcat(string(x)," "));\r
+    mprintf("fval = %e\n",fval);\r
+\r
+    mprintf("output.message:\n");\r
+\r
+    for i =1:3\r
+        mprintf(output.message(i));\r
+        mprintf("\n");\r
+    end\r
+\r
+    mprintf("output.algorithm:%s\n",output.algorithm);\r
+    mprintf("output.funcCount:%d\n",output.funcCount);\r
+    mprintf("output.iterations:%d\n",output.iterations);\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'fminsearch_outputfunction.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename, "readonly" );\r
+    end\r
+endfunction\r
+\r
+demo_outputfunction();\r
+clear demo_outputfunction;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index ac63392..c7f8a20 100644 (file)
@@ -1,48 +1,58 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_fmin_rosenbrock()
-  mprintf(_("Running optimization ...\n"));
-  
-  function y = banana (x)
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-  
-  x0 = [-1.2 1];
-  [x , fval , exitflag , output] = fminsearch ( banana , x0 );
-  
-  //
-  // Display results
-  //
-  mprintf("x = %s\n",strcat(string(x)," "));
-  mprintf("fval = %e\n",fval);
-  mprintf("exitflag = %d\n",exitflag);
-  mprintf("output.message:\n");
-  
-  for i =1:3
-    mprintf(output.message(i));
-    mprintf("\n");
-  end
-  
-  mprintf("output.algorithm:%s\n",output.algorithm);
-  mprintf("output.funcCount:%d\n",output.funcCount);
-  mprintf("output.iterations:%d\n",output.iterations);
-  
-  //
-  // Load this script into the editor
-  //
-  filename = 'fminsearch_rosenbrock.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_fmin_rosenbrock();
-clear demo_fmin_rosenbrock;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_fmin_rosenbrock()\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function y = banana (x)\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+    x0 = [-1.2 1];\r
+    [x , fval , exitflag , output] = fminsearch ( banana , x0 );\r
+\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x = %s\n",strcat(string(x)," "));\r
+    mprintf("fval = %e\n",fval);\r
+    mprintf("exitflag = %d\n",exitflag);\r
+    mprintf("output.message:\n");\r
+\r
+    for i =1:3\r
+        mprintf(output.message(i));\r
+        mprintf("\n");\r
+    end\r
+\r
+    mprintf("output.algorithm:%s\n",output.algorithm);\r
+    mprintf("output.funcCount:%d\n",output.funcCount);\r
+    mprintf("output.iterations:%d\n",output.iterations);\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'fminsearch_rosenbrock.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename, "readonly" );\r
+    end\r
+endfunction\r
+\r
+demo_fmin_rosenbrock();\r
+clear demo_fmin_rosenbrock;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index f97682e..ef074da 100644 (file)
@@ -1,51 +1,61 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-
-function demo_fmin_tolx()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function y = banana (x)
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-
-  x0 = [-1.2 1]
-  opt = optimset ( "TolX" , 1.e-2 );
-  [x , fval , exitflag , output] = fminsearch ( banana , x0 , opt );
-  
-  //
-  // Display results
-  //
-  mprintf("x = %s\n",strcat(string(x)," "));
-  mprintf("fval = %e\n",fval);
-  mprintf("exitflag = %d\n",exitflag);
-  mprintf("output.message:\n");
-  
-  for i =1:3
-    mprintf(output.message(i));
-    mprintf("\n");
-  end
-  
-  mprintf("output.algorithm:%s\n",output.algorithm);
-  mprintf("output.funcCount:%d\n",output.funcCount);
-  mprintf("output.iterations:%d\n",output.iterations);
-  
-  //
-  // Load this script into the editor
-  //
-  filename = 'fminsearch_tolx.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_fmin_tolx();
-clear demo_fmin_tolx;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+\r
+function demo_fmin_tolx()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function y = banana (x)\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+    x0 = [-1.2 1]\r
+    opt = optimset ( "TolX" , 1.e-2 );\r
+    [x , fval , exitflag , output] = fminsearch ( banana , x0 , opt );\r
+\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x = %s\n",strcat(string(x)," "));\r
+    mprintf("fval = %e\n",fval);\r
+    mprintf("exitflag = %d\n",exitflag);\r
+    mprintf("output.message:\n");\r
+\r
+    for i =1:3\r
+        mprintf(output.message(i));\r
+        mprintf("\n");\r
+    end\r
+\r
+    mprintf("output.algorithm:%s\n",output.algorithm);\r
+    mprintf("output.funcCount:%d\n",output.funcCount);\r
+    mprintf("output.iterations:%d\n",output.iterations);\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'fminsearch_tolx.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename, "readonly" );\r
+    end\r
+endfunction\r
+\r
+demo_fmin_tolx();\r
+clear demo_fmin_tolx;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index ecd79fe..7bdad77 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2010 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-//
-// neldermeadBounds.sce --
-//   Show a simple neldermead session with bounds.
-//
-
-function demo_boxbounds()
-
-  filename = 'neldermead_boxbounds.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates Box'' algorithm on a simply bounds-constrained optimization problem.\n"));
-
-  // A simple quadratic function
-  function [ f , index ] = myquad ( x , index )
-    f = x(1)^2 + x(2)^2
-  endfunction
-  function y = myquadC ( x1 , x2 )
-    y = myquad ( [x1 , x2] , 2 )
-  endfunction
-
-  //
-  // Initialize the random number generator, so that the results are always the
-  // same.
-  //
-  rand("seed" , 0)
-
-  x0 = [1.2 1.9].';
-  // Compute f(x0) : should be close to -2351244.0
-  [ fx0 , index ] = myquad ( x0 , 2 );
-  mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , 5.05 );
-
-  xopt = [1 1].';
-  // Compute f(xopt) : should be 2
-  [ fopt , index ] = myquad ( xopt , 2 );
-  mprintf("Computed fopt = %e (expected = %e)\n", fopt , 2 );
-
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm,"-numberofvariables",2);
-  nm = nmplot_configure(nm,"-function",myquad);
-  nm = nmplot_configure(nm,"-x0",x0);
-  nm = nmplot_configure(nm,"-method","box");
-  nm = nmplot_configure(nm,"-boundsmin",[1 1]);
-  nm = nmplot_configure(nm,"-boundsmax",[2 2]);
-
-  //
-  // Check that the cost function is correctly connected.
-  //
-  [ nm , f ] = nmplot_function ( nm , x0 );
-  simplexfn = fullfile(TMPDIR , "history.simplex.txt")
-  nm = nmplot_configure(nm,"-simplexfn",simplexfn);
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-  mprintf(_("...Done\n"));
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"nmplot_summary.sci"),-1);
-  nmplot_summary(nm)
-  mprintf("==========================\n");
-  xcomp = nmplot_get(nm,"-xopt");
-  mprintf("x expected = %s\n",strcat(string(xopt), " "));
-  shift = norm(xcomp-xopt)/norm(xopt);
-  mprintf("Shift = %f\n",shift);
-  fcomp = nmplot_get(nm,"-fopt");
-  mprintf("f expected = %f\n",fopt);
-  shift = abs(fcomp-fopt)/abs(fopt);
-  mprintf("Shift =%f\n",shift);
-  
-  //
-  // Plot
-  //
-  mprintf(_("Plot contour (please wait)...\n"));
-  xmin = 0.5 ; 
-  xmax = 2.1 ; 
-  ymin = 0.5 ; 
-  ymax = 2.1 ; 
-  nx = 50 ; 
-  ny = 50;
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  scf();
-  xset("fpf"," ")
-  drawlater();
-  contour ( xdata , ydata , myquadC , 10 )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  //
-  // Cleanup
-  deletefile(simplexfn)
-  nm = nmplot_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-endfunction
-
-demo_boxbounds();
-clear demo_boxbounds;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2010 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+//\r
+// neldermeadBounds.sce --\r
+//   Show a simple neldermead session with bounds.\r
+//\r
+\r
+function demo_boxbounds()\r
+\r
+    filename = 'neldermead_boxbounds.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates Box'' algorithm on a simply bounds-constrained optimization problem.\n"));\r
+\r
+    // A simple quadratic function\r
+    function [ f , index ] = myquad ( x , index )\r
+        f = x(1)^2 + x(2)^2\r
+    endfunction\r
+    function y = myquadC ( x1 , x2 )\r
+        y = myquad ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+    //\r
+    // Initialize the random number generator, so that the results are always the\r
+    // same.\r
+    //\r
+    rand("seed" , 0)\r
+\r
+    x0 = [1.2 1.9].';\r
+    // Compute f(x0) : should be close to -2351244.0\r
+    [ fx0 , index ] = myquad ( x0 , 2 );\r
+    mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , 5.05 );\r
+\r
+    xopt = [1 1].';\r
+    // Compute f(xopt) : should be 2\r
+    [ fopt , index ] = myquad ( xopt , 2 );\r
+    mprintf("Computed fopt = %e (expected = %e)\n", fopt , 2 );\r
+\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm,"-numberofvariables",2);\r
+    nm = nmplot_configure(nm,"-function",myquad);\r
+    nm = nmplot_configure(nm,"-x0",x0);\r
+    nm = nmplot_configure(nm,"-method","box");\r
+    nm = nmplot_configure(nm,"-boundsmin",[1 1]);\r
+    nm = nmplot_configure(nm,"-boundsmax",[2 2]);\r
+\r
+    //\r
+    // Check that the cost function is correctly connected.\r
+    //\r
+    [ nm , f ] = nmplot_function ( nm , x0 );\r
+    simplexfn = fullfile(TMPDIR , "history.simplex.txt")\r
+    nm = nmplot_configure(nm,"-simplexfn",simplexfn);\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    mprintf(_("...Done\n"));\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+    mprintf("==========================\n");\r
+    xcomp = nmplot_get(nm,"-xopt");\r
+    mprintf("x expected = %s\n",strcat(string(xopt), " "));\r
+    shift = norm(xcomp-xopt)/norm(xopt);\r
+    mprintf("Shift = %f\n",shift);\r
+    fcomp = nmplot_get(nm,"-fopt");\r
+    mprintf("f expected = %f\n",fopt);\r
+    shift = abs(fcomp-fopt)/abs(fopt);\r
+    mprintf("Shift =%f\n",shift);\r
+\r
+    //\r
+    // Plot\r
+    //\r
+    mprintf(_("Plot contour (please wait)...\n"));\r
+    xmin = 0.5 ; \r
+    xmax = 2.1 ; \r
+    ymin = 0.5 ; \r
+    ymax = 2.1 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    scf();\r
+    xset("fpf"," ")\r
+    drawlater();\r
+    contour ( xdata , ydata , myquadC , 10 )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+    //\r
+    // Cleanup\r
+    deletefile(simplexfn)\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_boxbounds();\r
+clear demo_boxbounds;\r
+\r
+\r
+\r
+\r
+\r\r
index a4bf950..c39cfcb 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-//
-// nmplot_boxpost.sce --
-//   Show that the Box algorithm is able to reproduce the 
-//   numerical experiment presented in Richardson and Kuester's paper.
-//   Rosenbrock's Post Office
-//
-
-function demo_boxpost()
-
-  filename = 'neldermead_boxpost.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates Box'' algorithm on Rosenbrock''s Post Office Problem.\n"));
-  mprintf(_("Defining Rosenbrock Post Office function...\n"));
-
-  //
-  //  Reference:
-  //
-  //    Algorithm 454
-  //    The complex method for constrained
-  //    optimization
-  //    Richardson, Kuester
-  //    1971
-  //
-  //    An automatic method for finding the
-  //    greatest or least value of a function
-  //    Rosenbrock
-  //    1960
-  //
-  //   Richardson and Kuester Results :
-  //   F=3456
-  //   X1 = 24.01
-  //   X2 = 12.00
-  //   X3 = 12.00
-  //   Iterations : 72
-  //
-  //
-
-  //
-  // fpostoffice --
-  //   Computes the Post Office cost function and 
-  //   inequality constraints.
-  //
-  // Arguments
-  //   x: the point where to compute the function
-  //   index : the stuff to compute
-  //
-  
-  function [ f , c , index ] = fpostoffice ( x , index )
-    f = []
-    c = []
-    if ( index==2 | index==6 ) then
-      f = -x(1) * x(2) * x(3)
-    end
-    
-    if ( index==5 | index==6 ) then
-      c1 = x(1) + 2 * x(2) + 2 * x(3)
-      c2 = 72 - c1
-      c = [c1 c2]
-    end
-  endfunction
-  //
-  // Initialize the random number generator, so that the results are always the
-  // same.
-  //
-  rand("seed" , 0)
-
-  x0 = [1.0 1.0 1.0].';
-  // Compute f(x0) : should be close to -1
-  fx0 = fpostoffice ( x0 , 2 );
-  mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , -1 );
-  [ fx0 , cx0, index ] = fpostoffice ( x0 , 6 );
-  mprintf("Computed Constraints(x0) = [%e %e]\n", ..
-    cx0(1), cx0(2) );
-  mprintf("Expected Constraints(x0) = [%e %e]\n", ..
-    5 , 67 );
-
-  xopt = [24 12 12].';
-  // Compute f(xopt) : should be 3456
-  fopt = fpostoffice ( xopt );
-  mprintf("Computed fopt = %e (expected = %e)\n", fopt , -3456 );
-
-  nm = neldermead_new ();
-  nm = neldermead_configure(nm,"-numberofvariables",3);
-  nm = neldermead_configure(nm,"-function",fpostoffice);
-  nm = neldermead_configure(nm,"-x0",x0);
-  nm = neldermead_configure(nm,"-maxiter",300);
-  nm = neldermead_configure(nm,"-maxfunevals",300);
-  nm = neldermead_configure(nm,"-method","box");
-  nm = neldermead_configure(nm,"-verbose",1);
-  logfile = TMPDIR + "/postoffice.txt";
-  nm = neldermead_configure(nm,"-logfile" , logfile );
-  nm = neldermead_configure(nm,"-verbosetermination",1);
-  nm = neldermead_configure(nm,"-boundsmin",[0.0 0.0 0.0]);
-  nm = neldermead_configure(nm,"-boundsmax",[42.0 42.0 42.0]);
-  // Configure like Box
-  nm = neldermead_configure(nm,"-simplex0method","randbounds");
-  nm = neldermead_configure(nm,"-nbineqconst",2);
-  nm = neldermead_configure(nm,"-tolxmethod" , %f );
-  nm = neldermead_configure(nm,"-tolsimplexizemethod",%f);
-  nm = neldermead_configure(nm,"-boxtermination" , %t );
-  nm = neldermead_configure(nm,"-boxtolf" , 0.001 );
-  nm = neldermead_configure(nm,"-boxboundsalpha" , 0.0001 );
-
-  //
-  // Check that the cost function is correctly connected.
-  //
-  [ nm , result ] = neldermead_function ( nm , x0 );
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = neldermead_search(nm);
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"neldermead_summary.sci"),-1);
-  neldermead_summary(nm)
-  mprintf("==========================\n");
-  xcomp = neldermead_get(nm,"-xopt");
-  mprintf("x expected = [%s]\n",strcat(string(xopt)," "));
-  shift = norm(xcomp-xopt)/norm(xopt);
-  mprintf("Shift = %f\n",shift);
-  fcomp = neldermead_get(nm,"-fopt");
-  mprintf("f expected = %f\n",fopt);
-  shift = abs(fcomp-fopt)/abs(fopt);
-  mprintf("Shift = %f\n",shift);
-  nm = neldermead_destroy(nm);
-  deletefile ( logfile )
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_boxpost();
-clear demo_boxpost;
\ No newline at end of file
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+//\r
+// nmplot_boxpost.sce --\r
+//   Show that the Box algorithm is able to reproduce the \r
+//   numerical experiment presented in Richardson and Kuester's paper.\r
+//   Rosenbrock's Post Office\r
+//\r
+\r
+function demo_boxpost()\r
+\r
+    filename = 'neldermead_boxpost.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates Box'' algorithm on Rosenbrock''s Post Office Problem.\n"));\r
+    mprintf(_("Defining Rosenbrock Post Office function...\n"));\r
+\r
+    //\r
+    //  Reference:\r
+    //\r
+    //    Algorithm 454\r
+    //    The complex method for constrained\r
+    //    optimization\r
+    //    Richardson, Kuester\r
+    //    1971\r
+    //\r
+    //    An automatic method for finding the\r
+    //    greatest or least value of a function\r
+    //    Rosenbrock\r
+    //    1960\r
+    //\r
+    //   Richardson and Kuester Results :\r
+    //   F=3456\r
+    //   X1 = 24.01\r
+    //   X2 = 12.00\r
+    //   X3 = 12.00\r
+    //   Iterations : 72\r
+    //\r
+    //\r
+\r
+    //\r
+    // fpostoffice --\r
+    //   Computes the Post Office cost function and \r
+    //   inequality constraints.\r
+    //\r
+    // Arguments\r
+    //   x: the point where to compute the function\r
+    //   index : the stuff to compute\r
+    //\r
+\r
+    function [ f , c , index ] = fpostoffice ( x , index )\r
+        f = []\r
+        c = []\r
+        if ( index==2 | index==6 ) then\r
+            f = -x(1) * x(2) * x(3)\r
+        end\r
+\r
+        if ( index==5 | index==6 ) then\r
+            c1 = x(1) + 2 * x(2) + 2 * x(3)\r
+            c2 = 72 - c1\r
+            c = [c1 c2]\r
+        end\r
+    endfunction\r
+    //\r
+    // Initialize the random number generator, so that the results are always the\r
+    // same.\r
+    //\r
+    rand("seed" , 0)\r
+\r
+    x0 = [1.0 1.0 1.0].';\r
+    // Compute f(x0) : should be close to -1\r
+    fx0 = fpostoffice ( x0 , 2 );\r
+    mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , -1 );\r
+    [ fx0 , cx0, index ] = fpostoffice ( x0 , 6 );\r
+    mprintf("Computed Constraints(x0) = [%e %e]\n", ..\r
+    cx0(1), cx0(2) );\r
+    mprintf("Expected Constraints(x0) = [%e %e]\n", ..\r
+    5 , 67 );\r
+\r
+    xopt = [24 12 12].';\r
+    // Compute f(xopt) : should be 3456\r
+    fopt = fpostoffice ( xopt );\r
+    mprintf("Computed fopt = %e (expected = %e)\n", fopt , -3456 );\r
+\r
+    nm = neldermead_new ();\r
+    nm = neldermead_configure(nm,"-numberofvariables",3);\r
+    nm = neldermead_configure(nm,"-function",fpostoffice);\r
+    nm = neldermead_configure(nm,"-x0",x0);\r
+    nm = neldermead_configure(nm,"-maxiter",300);\r
+    nm = neldermead_configure(nm,"-maxfunevals",300);\r
+    nm = neldermead_configure(nm,"-method","box");\r
+    nm = neldermead_configure(nm,"-verbose",1);\r
+    logfile = TMPDIR + "/postoffice.txt";\r
+    nm = neldermead_configure(nm,"-logfile" , logfile );\r
+    nm = neldermead_configure(nm,"-verbosetermination",1);\r
+    nm = neldermead_configure(nm,"-boundsmin",[0.0 0.0 0.0]);\r
+    nm = neldermead_configure(nm,"-boundsmax",[42.0 42.0 42.0]);\r
+    // Configure like Box\r
+    nm = neldermead_configure(nm,"-simplex0method","randbounds");\r
+    nm = neldermead_configure(nm,"-nbineqconst",2);\r
+    nm = neldermead_configure(nm,"-tolxmethod" , %f );\r
+    nm = neldermead_configure(nm,"-tolsimplexizemethod",%f);\r
+    nm = neldermead_configure(nm,"-boxtermination" , %t );\r
+    nm = neldermead_configure(nm,"-boxtolf" , 0.001 );\r
+    nm = neldermead_configure(nm,"-boxboundsalpha" , 0.0001 );\r
+\r
+    //\r
+    // Check that the cost function is correctly connected.\r
+    //\r
+    [ nm , result ] = neldermead_function ( nm , x0 );\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = neldermead_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"neldermead_summary.sci"),-1);\r
+    neldermead_summary(nm)\r
+    mprintf("==========================\n");\r
+    xcomp = neldermead_get(nm,"-xopt");\r
+    mprintf("x expected = [%s]\n",strcat(string(xopt)," "));\r
+    shift = norm(xcomp-xopt)/norm(xopt);\r
+    mprintf("Shift = %f\n",shift);\r
+    fcomp = neldermead_get(nm,"-fopt");\r
+    mprintf("f expected = %f\n",fopt);\r
+    shift = abs(fcomp-fopt)/abs(fopt);\r
+    mprintf("Shift = %f\n",shift);\r
+    nm = neldermead_destroy(nm);\r
+    deletefile ( logfile )\r
+    mprintf(_("End of demo.\n"));\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        editor ( dname + filename, "readonly" );\r
+    end \r
+endfunction\r
+\r
+demo_boxpost();\r
+clear demo_boxpost;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 4030a59..8163947 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2009-2010 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-//
-// nmplot_boxproblemA.sce --
-//   Show that the Box algorithm is able to reproduce the 
-//   numerical experiment presented in Box's paper.
-//
-
-function demo_boxproblemA()
-
-  filename = 'neldermead_boxproblemA.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates Box'' algorithm on Box problem A.\n"));
-
-  mprintf("M.J. Box, \n");
-  mprintf(_("""A new method of constrained optimization \n"));
-  mprintf(_("and a comparison with other methods"".\n"));
-  mprintf("The Computer Journal, Volume 8, Number 1, 1965, 42--52\n");
-  mprintf(_("Problem A\n"));
-
-
-  //
-  //  Reference:
-  //
-  //   M.J. Box, 
-  //   "A new method of constrained optimization 
-  //   and a comparison with other methods".
-  //   The Computer Journal, Volume 8, Number 1, 1965, 42--52
-  //   Problem A
-  //
-  //   Algorithm 454: the complex method for constrained optimization [E4]
-  //   Communications of the ACM, Volume 16 ,  Issue 8  (August 1973)
-  //   Pages: 487 - 489   
-  //
-
-  //
-  // boxproblemA --
-  //   Computes the Box problem A cost function and 
-  //   inequality constraints.
-  //
-  // Arguments
-  //   x: the point where to compute the function
-  //   index : the stuff to compute
-  //   data : the parameters of Box cost function
-  //
-  function [ f , c , index ] = boxproblemA ( x , index , data )
-    f = []
-    c = []
-    b = x(2) + 0.01 * x(3)
-    x6 = (data.k1 + data.k2 * x(2) ...
-            + data.k3 * x(3) + data.k4 * x(4) + data.k5 * x(5)) * x(1)
-    y1 = data.k6 + data.k7 * x(2) + data.k8 * x(3) ...
-            + data.k9 * x(4) + data.k10 * x(5)
-    y2 = data.k11 + data.k12 * x(2) + data.k13 * x(3) ...
-            + data.k14 * x(4) + data.k15 * x(5)
-    y3 = data.k16 + data.k17 * x(2) + data.k18 * x(3) ...
-            + data.k19 * x(4) + data.k20 * x(5)
-    y4 = data.k21 + data.k22 * x(2) + data.k23 * x(3) ...
-            + data.k24 * x(4) + data.k25 * x(5)
-    x7 = ( y1 + y2 + y3 ) * x(1)
-    x8 = (data.k26 + data.k27 * x(2) + data.k28 * x(3) ...
-            + data.k29 * x(4) ...
-            + data.k30 * x(5) ) * x(1) + x6 + x7
-            
-    if ( index == 2 | index == 6 ) then
-      f = (data.a2 * y1 + data.a3 * y2 + data.a4 * y3 + data.a5 * y4 ...
-             + 7840 * data.a6 - 100000 * data.a0 ...
-             - 50800 * b * data.a7 + data.k31 + data.k32 * x(2) + data.k33 * x(3) ...
-             + data.k34 * x(4) + data.k35 * x(5)) * x(1) ...
-             - 24345 + data.a1 * x6
-      f = -f
-    end
-    
-    if ( index == 5 | index == 6 ) then
-      c1 = x6
-      c2 = 294000 - x6
-      c3 = x7
-      c4 = 294000 - x7
-      c5 = x8
-      c6 = 277200 - x8
-      c = [c1 c2 c3 c4 c5 c6]
-    end
-  endfunction
-
-  boxparams = struct();
-  boxparams.a0 = 9;
-  boxparams.a1 = 15;
-  boxparams.a2 = 50;
-  boxparams.a3 = 9.583;
-  boxparams.a4 = 20;
-  boxparams.a5 = 15;
-  boxparams.a6 = 6;
-  boxparams.a7 = 0.75;
-  boxparams.k1 = -145421.402;
-  boxparams.k2 = 2931.1506;
-  boxparams.k3 = -40.427932;
-  boxparams.k4 = 5106.192;
-  boxparams.k5 = 15711.36;
-  boxparams.k6 = -161622.577;
-  boxparams.k7 = 4176.15328;
-  boxparams.k8 = 2.8260078;
-  boxparams.k9 = 9200.476;
-  boxparams.k10 = 13160.295;
-  boxparams.k11 = -21686.9194;
-  boxparams.k12 = 123.56928;
-  boxparams.k13 = -21.1188894;
-  boxparams.k14 = 706.834;
-  boxparams.k15 = 2898.573;
-  boxparams.k16 = 28298.388;
-  boxparams.k17 = 60.81096;
-  boxparams.k18 = 31.242116;
-  boxparams.k19 = 329.574;
-  boxparams.k20 = -2882.082;
-  boxparams.k21 = 74095.3845;
-  boxparams.k22 = -306.262544;
-  boxparams.k23 = 16.243649;
-  boxparams.k24 = -3094.252;
-  boxparams.k25 = -5566.2628;
-  boxparams.k26 = -26237.0;
-  boxparams.k27 = 99.0;
-  boxparams.k28 = -0.42;
-  boxparams.k29 = 1300.0;
-  boxparams.k30 = 2100.0;
-  boxparams.k31 = 925548.252;
-  boxparams.k32 = -61968.8432;
-  boxparams.k33 = 23.3088196;
-  boxparams.k34 = -27097.648;
-  boxparams.k35 = -50843.766;
-
-  //
-  // Initialize the random number generator, so that the results are always the
-  // same.
-  //
-  rand("seed" , 0)
-
-  x0 = [2.52 2.0 37.5 9.25 6.8].';
-  // Compute f(x0) : should be close to -2351244.0
-  [ fx0 , c , index ] = boxproblemA ( x0 , 2 , boxparams );
-  mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , -2351244. );
-
-  xopt = [4.53743 2.4 60.0 9.3 7.0].';
-  // Compute f(xopt) : should be -5280334.0
-  [ fopt , c , index ] = boxproblemA ( xopt , 2 , boxparams );
-  mprintf("Computed fopt = %e (expected = %e)\n", fopt , -5280334.0 );
-
-  nm = neldermead_new ();
-  nm = neldermead_configure(nm,"-numberofvariables",5);
-  nm = neldermead_configure(nm,"-function",list(boxproblemA,boxparams));
-  nm = neldermead_configure(nm,"-x0",x0);
-  nm = neldermead_configure(nm,"-maxiter",300);
-  nm = neldermead_configure(nm,"-maxfunevals",1000);
-  nm = neldermead_configure(nm,"-tolsimplexizerelative",1.e-4);
-  nm = neldermead_configure(nm,"-method","box");
-  
-  // Configure like Box
-  nm = neldermead_configure(nm,"-boundsmin",[0.0 1.2 20.0 9.0 6.0]);
-  nm = neldermead_configure(nm,"-boundsmax",[5.0 2.5 60.0 9.3 7.0]);
-  nm = neldermead_configure(nm,"-simplex0method","randbounds");
-  nm = neldermead_configure(nm,"-nbineqconst",6);
-  
-  //
-  // Check that the cost function is correctly connected.
-  //
-  [ nm , f ] = neldermead_function ( nm , x0 );
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait)...\n"));
-  nm = neldermead_search(nm);
-  mprintf(_("...Done\n"));
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"neldermead_summary.sci"),-1);
-  neldermead_summary(nm)
-  mprintf("==========================\n");
-  xcomp = neldermead_get(nm,"-xopt");
-  mprintf("x expected = [%s]\n",strcat(string(xopt)," "));
-  shift = norm(xcomp-xopt)/norm(xopt);
-  mprintf(_("Relative error on x = %e\n"),shift);
-  fcomp = neldermead_get(nm,"-fopt");
-  mprintf("f expected = %f\n",fopt);
-  shift = abs(fcomp-fopt)/abs(fopt);
-  mprintf("Relative error on f = %e\n",shift);
-  nm = neldermead_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction 
-
-demo_boxproblemA();
-clear demo_boxproblemA;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2009-2010 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+//\r
+// nmplot_boxproblemA.sce --\r
+//   Show that the Box algorithm is able to reproduce the \r
+//   numerical experiment presented in Box's paper.\r
+//\r
+\r
+function demo_boxproblemA()\r
+\r
+    filename = 'neldermead_boxproblemA.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates Box'' algorithm on Box problem A.\n"));\r
+\r
+    mprintf("M.J. Box, \n");\r
+    mprintf(_("""A new method of constrained optimization \n"));\r
+    mprintf(_("and a comparison with other methods"".\n"));\r
+    mprintf("The Computer Journal, Volume 8, Number 1, 1965, 42--52\n");\r
+    mprintf(_("Problem A\n"));\r
+\r
+\r
+    //\r
+    //  Reference:\r
+    //\r
+    //   M.J. Box, \r
+    //   "A new method of constrained optimization \r
+    //   and a comparison with other methods".\r
+    //   The Computer Journal, Volume 8, Number 1, 1965, 42--52\r
+    //   Problem A\r
+    //\r
+    //   Algorithm 454: the complex method for constrained optimization [E4]\r
+    //   Communications of the ACM, Volume 16 ,  Issue 8  (August 1973)\r
+    //   Pages: 487 - 489   \r
+    //\r
+\r
+    //\r
+    // boxproblemA --\r
+    //   Computes the Box problem A cost function and \r
+    //   inequality constraints.\r
+    //\r
+    // Arguments\r
+    //   x: the point where to compute the function\r
+    //   index : the stuff to compute\r
+    //   data : the parameters of Box cost function\r
+    //\r
+    function [ f , c , index ] = boxproblemA ( x , index , data )\r
+        f = []\r
+        c = []\r
+        b = x(2) + 0.01 * x(3)\r
+        x6 = (data.k1 + data.k2 * x(2) ...\r
+        + data.k3 * x(3) + data.k4 * x(4) + data.k5 * x(5)) * x(1)\r
+        y1 = data.k6 + data.k7 * x(2) + data.k8 * x(3) ...\r
+        + data.k9 * x(4) + data.k10 * x(5)\r
+        y2 = data.k11 + data.k12 * x(2) + data.k13 * x(3) ...\r
+        + data.k14 * x(4) + data.k15 * x(5)\r
+        y3 = data.k16 + data.k17 * x(2) + data.k18 * x(3) ...\r
+        + data.k19 * x(4) + data.k20 * x(5)\r
+        y4 = data.k21 + data.k22 * x(2) + data.k23 * x(3) ...\r
+        + data.k24 * x(4) + data.k25 * x(5)\r
+        x7 = ( y1 + y2 + y3 ) * x(1)\r
+        x8 = (data.k26 + data.k27 * x(2) + data.k28 * x(3) ...\r
+        + data.k29 * x(4) ...\r
+        + data.k30 * x(5) ) * x(1) + x6 + x7\r
+\r
+        if ( index == 2 | index == 6 ) then\r
+            f = (data.a2 * y1 + data.a3 * y2 + data.a4 * y3 + data.a5 * y4 ...\r
+            + 7840 * data.a6 - 100000 * data.a0 ...\r
+            - 50800 * b * data.a7 + data.k31 + data.k32 * x(2) + data.k33 * x(3) ...\r
+            + data.k34 * x(4) + data.k35 * x(5)) * x(1) ...\r
+            - 24345 + data.a1 * x6\r
+            f = -f\r
+        end\r
+\r
+        if ( index == 5 | index == 6 ) then\r
+            c1 = x6\r
+            c2 = 294000 - x6\r
+            c3 = x7\r
+            c4 = 294000 - x7\r
+            c5 = x8\r
+            c6 = 277200 - x8\r
+            c = [c1 c2 c3 c4 c5 c6]\r
+        end\r
+    endfunction\r
+\r
+    boxparams = struct();\r
+    boxparams.a0 = 9;\r
+    boxparams.a1 = 15;\r
+    boxparams.a2 = 50;\r
+    boxparams.a3 = 9.583;\r
+    boxparams.a4 = 20;\r
+    boxparams.a5 = 15;\r
+    boxparams.a6 = 6;\r
+    boxparams.a7 = 0.75;\r
+    boxparams.k1 = -145421.402;\r
+    boxparams.k2 = 2931.1506;\r
+    boxparams.k3 = -40.427932;\r
+    boxparams.k4 = 5106.192;\r
+    boxparams.k5 = 15711.36;\r
+    boxparams.k6 = -161622.577;\r
+    boxparams.k7 = 4176.15328;\r
+    boxparams.k8 = 2.8260078;\r
+    boxparams.k9 = 9200.476;\r
+    boxparams.k10 = 13160.295;\r
+    boxparams.k11 = -21686.9194;\r
+    boxparams.k12 = 123.56928;\r
+    boxparams.k13 = -21.1188894;\r
+    boxparams.k14 = 706.834;\r
+    boxparams.k15 = 2898.573;\r
+    boxparams.k16 = 28298.388;\r
+    boxparams.k17 = 60.81096;\r
+    boxparams.k18 = 31.242116;\r
+    boxparams.k19 = 329.574;\r
+    boxparams.k20 = -2882.082;\r
+    boxparams.k21 = 74095.3845;\r
+    boxparams.k22 = -306.262544;\r
+    boxparams.k23 = 16.243649;\r
+    boxparams.k24 = -3094.252;\r
+    boxparams.k25 = -5566.2628;\r
+    boxparams.k26 = -26237.0;\r
+    boxparams.k27 = 99.0;\r
+    boxparams.k28 = -0.42;\r
+    boxparams.k29 = 1300.0;\r
+    boxparams.k30 = 2100.0;\r
+    boxparams.k31 = 925548.252;\r
+    boxparams.k32 = -61968.8432;\r
+    boxparams.k33 = 23.3088196;\r
+    boxparams.k34 = -27097.648;\r
+    boxparams.k35 = -50843.766;\r
+\r
+    //\r
+    // Initialize the random number generator, so that the results are always the\r
+    // same.\r
+    //\r
+    rand("seed" , 0)\r
+\r
+    x0 = [2.52 2.0 37.5 9.25 6.8].';\r
+    // Compute f(x0) : should be close to -2351244.0\r
+    [ fx0 , c , index ] = boxproblemA ( x0 , 2 , boxparams );\r
+    mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , -2351244. );\r
+\r
+    xopt = [4.53743 2.4 60.0 9.3 7.0].';\r
+    // Compute f(xopt) : should be -5280334.0\r
+    [ fopt , c , index ] = boxproblemA ( xopt , 2 , boxparams );\r
+    mprintf("Computed fopt = %e (expected = %e)\n", fopt , -5280334.0 );\r
+\r
+    nm = neldermead_new ();\r
+    nm = neldermead_configure(nm,"-numberofvariables",5);\r
+    nm = neldermead_configure(nm,"-function",list(boxproblemA,boxparams));\r
+    nm = neldermead_configure(nm,"-x0",x0);\r
+    nm = neldermead_configure(nm,"-maxiter",300);\r
+    nm = neldermead_configure(nm,"-maxfunevals",1000);\r
+    nm = neldermead_configure(nm,"-tolsimplexizerelative",1.e-4);\r
+    nm = neldermead_configure(nm,"-method","box");\r
+\r
+    // Configure like Box\r
+    nm = neldermead_configure(nm,"-boundsmin",[0.0 1.2 20.0 9.0 6.0]);\r
+    nm = neldermead_configure(nm,"-boundsmax",[5.0 2.5 60.0 9.3 7.0]);\r
+    nm = neldermead_configure(nm,"-simplex0method","randbounds");\r
+    nm = neldermead_configure(nm,"-nbineqconst",6);\r
+\r
+    //\r
+    // Check that the cost function is correctly connected.\r
+    //\r
+    [ nm , f ] = neldermead_function ( nm , x0 );\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait)...\n"));\r
+    nm = neldermead_search(nm);\r
+    mprintf(_("...Done\n"));\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"neldermead_summary.sci"),-1);\r
+    neldermead_summary(nm)\r
+    mprintf("==========================\n");\r
+    xcomp = neldermead_get(nm,"-xopt");\r
+    mprintf("x expected = [%s]\n",strcat(string(xopt)," "));\r
+    shift = norm(xcomp-xopt)/norm(xopt);\r
+    mprintf(_("Relative error on x = %e\n"),shift);\r
+    fcomp = neldermead_get(nm,"-fopt");\r
+    mprintf("f expected = %f\n",fopt);\r
+    shift = abs(fcomp-fopt)/abs(fopt);\r
+    mprintf("Relative error on f = %e\n",shift);\r
+    nm = neldermead_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        editor ( dname + filename, "readonly" );\r
+    end\r
+endfunction \r
+\r
+demo_boxproblemA();\r
+clear demo_boxproblemA;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index d3f2e79..cff46ed 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2009-2010 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-//
-// nmplot_boxproblemA.sce --
-//   Show that the Box algorithm is able to reproduce the 
-//   numerical experiment presented in Box's paper.
-//
-
-function demo_boxproblemB()
-
-  filename = 'neldermead_boxproblemB.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates Box'' algorithm on Box problem B.\n"));
-
-  mprintf("M.J. Box, \n");
-  mprintf(_("""A new method of constrained optimization \n"));
-  mprintf(_("and a comparison with other methods"".\n"));
-  mprintf("The Computer Journal, Volume 8, Number 1, 1965, 42--52\n");
-  mprintf(_("Problem B\n"));
-
-  //
-  //  Reference:
-  //
-  //   M.J.Box, 
-  //   "A new method of constrained optimization 
-  //   and a comparison with other methods".
-  //   The Computer Journal, Volume 8, Number 1, 1965, 42--52
-  //   Problem A
-  //
-  //   Algorithm 454: the complex method for constrained optimization [E4]
-  //   Communications of the ACM, Volume 16 ,  Issue 8  (August 1973)
-  //   Pages: 487 - 489   
-  //
-  //   Richardson and Kuester Results :
-  //   F=1.0000
-  //   X1 = 3.0000
-  //   X2 = 1.7320
-  //   Iterations : 68
-  //
-  //
-  // Note 
-  //    The maximum bound for the parameter x1
-  //    is not indicated in Box's paper, but indicated in "Algo 454".
-  //    The maximum bound for x2 is set to 100/sqrt(3) and satisfies the constraint on x2.
-  //    The original problem was to maximize the cost function.
-  //    Here, the problem is to minimize the cost function.
-
-  //
-  // boxproblemB --
-  //   Computes the Box problem B cost function and 
-  //   inequality constraints.
-  //
-  // Arguments
-  //   x: the point where to compute the function
-  //   index : the stuff to compute
-  //   data : the parameters of Box cost function
-  //
-  function [ f , c , index ] = boxproblemB ( x , index )
-    f = []
-    c = []
-    x3 = x(1) + sqrt(3.0) * x(2)
-    
-    if ( index==2 | index==6 ) then
-      f = -(9.0 - (x(1) - 3.0) ^ 2) * x(2) ^ 3 / 27.0 / sqrt(3.0)
-    end
-    
-    if ( index==5 | index==6 ) then
-      c1 = x(1) / sqrt(3.0) - x(2)
-      c2 = x3
-      c3 = 6.0 - x3
-      c = [c1 c2 c3]
-    end
-   
-  endfunction
-
-
-  //
-  // Initialize the random number generator, so that the results are always the
-  // same.
-  //
-  rand("seed" , 0)
-
-  x0 = [1.0 0.5].';
-  // Compute f(x0) : should be close to -0.0133645895646
-  fx0 = boxproblemB ( x0 , 2 );
-  mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , -0.0133645895646 );
-  [fx0 , cx0 , index ] = boxproblemB ( x0 , 6 );
-  mprintf("Computed Constraints(x0) = [%e %e %e]\n", ...
-    cx0(1), cx0(2), cx0(3) );
-  mprintf("Expected Constraints(x0) = [%e %e %e]\n", ...
-    0.0773503 , 1.8660254 , 4.1339746 );
-
-
-  xopt = [3.0 1.7320508075688774].';
-  // Compute f(xopt) : should be -1.0
-  fopt = boxproblemB ( xopt , 2 );
-  mprintf("Computed fopt = %e (expected = %e)\n", fopt , -1.0 );
-
-  nm = neldermead_new ();
-  nm = neldermead_configure(nm,"-numberofvariables",2);
-  nm = neldermead_configure(nm,"-function",boxproblemB);
-  nm = neldermead_configure(nm,"-x0",x0);
-  nm = neldermead_configure(nm,"-maxiter",300);
-  nm = neldermead_configure(nm,"-maxfunevals",300);
-  nm = neldermead_configure(nm,"-method","box");
-  nm = neldermead_configure(nm,"-boundsmin",[0.0 0.0]);
-  nm = neldermead_configure(nm,"-boundsmax",[100.0 57.735026918962582]);
-  // Configure like Box
-  nm = neldermead_configure(nm,"-simplex0method","randbounds");
-  nm = neldermead_configure(nm,"-nbineqconst",3);
-  nm = neldermead_configure(nm,"-tolxmethod" , %f );
-  nm = neldermead_configure(nm,"-tolsimplexizemethod",%f);
-  nm = neldermead_configure(nm,"-boxtermination" , %t );
-  nm = neldermead_configure(nm,"-boxtolf" , 0.001 );
-  nm = neldermead_configure(nm,"-boxboundsalpha" , 0.0001 );
-  //
-  // Check that the cost function is correctly connected.
-  //
-  [ nm , f ] = neldermead_function ( nm , x0 );
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = neldermead_search(nm);
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"neldermead_summary.sci"),-1);
-  neldermead_summary(nm)
-  mprintf("==========================\n");
-  xcomp = neldermead_get(nm,"-xopt");
-  mprintf("x expected = [%s]\n", strcat(string(xopt), " "));
-  shift = norm(xcomp-xopt)/norm(xopt);
-  mprintf(_("Relative error on x = %e\n"), shift);
-  fcomp = neldermead_get(nm,"-fopt");
-  mprintf(_("f expected = %f\n"), fopt);
-  shift = abs(fcomp-fopt)/abs(fopt);
-  mprintf(_("Relative error on f = %e\n"), shift);
-  nm = neldermead_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_boxproblemB();
-clear demo_boxproblemB;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2009-2010 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+//\r
+// nmplot_boxproblemA.sce --\r
+//   Show that the Box algorithm is able to reproduce the \r
+//   numerical experiment presented in Box's paper.\r
+//\r
+\r
+function demo_boxproblemB()\r
+\r
+    filename = 'neldermead_boxproblemB.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates Box'' algorithm on Box problem B.\n"));\r
+\r
+    mprintf("M.J. Box, \n");\r
+    mprintf(_("""A new method of constrained optimization \n"));\r
+    mprintf(_("and a comparison with other methods"".\n"));\r
+    mprintf("The Computer Journal, Volume 8, Number 1, 1965, 42--52\n");\r
+    mprintf(_("Problem B\n"));\r
+\r
+    //\r
+    //  Reference:\r
+    //\r
+    //   M.J.Box, \r
+    //   "A new method of constrained optimization \r
+    //   and a comparison with other methods".\r
+    //   The Computer Journal, Volume 8, Number 1, 1965, 42--52\r
+    //   Problem A\r
+    //\r
+    //   Algorithm 454: the complex method for constrained optimization [E4]\r
+    //   Communications of the ACM, Volume 16 ,  Issue 8  (August 1973)\r
+    //   Pages: 487 - 489   \r
+    //\r
+    //   Richardson and Kuester Results :\r
+    //   F=1.0000\r
+    //   X1 = 3.0000\r
+    //   X2 = 1.7320\r
+    //   Iterations : 68\r
+    //\r
+    //\r
+    // Note \r
+    //    The maximum bound for the parameter x1\r
+    //    is not indicated in Box's paper, but indicated in "Algo 454".\r
+    //    The maximum bound for x2 is set to 100/sqrt(3) and satisfies the constraint on x2.\r
+    //    The original problem was to maximize the cost function.\r
+    //    Here, the problem is to minimize the cost function.\r
+\r
+    //\r
+    // boxproblemB --\r
+    //   Computes the Box problem B cost function and \r
+    //   inequality constraints.\r
+    //\r
+    // Arguments\r
+    //   x: the point where to compute the function\r
+    //   index : the stuff to compute\r
+    //   data : the parameters of Box cost function\r
+    //\r
+    function [ f , c , index ] = boxproblemB ( x , index )\r
+        f = []\r
+        c = []\r
+        x3 = x(1) + sqrt(3.0) * x(2)\r
+\r
+        if ( index==2 | index==6 ) then\r
+            f = -(9.0 - (x(1) - 3.0) ^ 2) * x(2) ^ 3 / 27.0 / sqrt(3.0)\r
+        end\r
+\r
+        if ( index==5 | index==6 ) then\r
+            c1 = x(1) / sqrt(3.0) - x(2)\r
+            c2 = x3\r
+            c3 = 6.0 - x3\r
+            c = [c1 c2 c3]\r
+        end\r
+\r
+    endfunction\r
+\r
+\r
+    //\r
+    // Initialize the random number generator, so that the results are always the\r
+    // same.\r
+    //\r
+    rand("seed" , 0)\r
+\r
+    x0 = [1.0 0.5].';\r
+    // Compute f(x0) : should be close to -0.0133645895646\r
+    fx0 = boxproblemB ( x0 , 2 );\r
+    mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , -0.0133645895646 );\r
+    [fx0 , cx0 , index ] = boxproblemB ( x0 , 6 );\r
+    mprintf("Computed Constraints(x0) = [%e %e %e]\n", ...\r
+    cx0(1), cx0(2), cx0(3) );\r
+    mprintf("Expected Constraints(x0) = [%e %e %e]\n", ...\r
+    0.0773503 , 1.8660254 , 4.1339746 );\r
+\r
+\r
+    xopt = [3.0 1.7320508075688774].';\r
+    // Compute f(xopt) : should be -1.0\r
+    fopt = boxproblemB ( xopt , 2 );\r
+    mprintf("Computed fopt = %e (expected = %e)\n", fopt , -1.0 );\r
+\r
+    nm = neldermead_new ();\r
+    nm = neldermead_configure(nm,"-numberofvariables",2);\r
+    nm = neldermead_configure(nm,"-function",boxproblemB);\r
+    nm = neldermead_configure(nm,"-x0",x0);\r
+    nm = neldermead_configure(nm,"-maxiter",300);\r
+    nm = neldermead_configure(nm,"-maxfunevals",300);\r
+    nm = neldermead_configure(nm,"-method","box");\r
+    nm = neldermead_configure(nm,"-boundsmin",[0.0 0.0]);\r
+    nm = neldermead_configure(nm,"-boundsmax",[100.0 57.735026918962582]);\r
+    // Configure like Box\r
+    nm = neldermead_configure(nm,"-simplex0method","randbounds");\r
+    nm = neldermead_configure(nm,"-nbineqconst",3);\r
+    nm = neldermead_configure(nm,"-tolxmethod" , %f );\r
+    nm = neldermead_configure(nm,"-tolsimplexizemethod",%f);\r
+    nm = neldermead_configure(nm,"-boxtermination" , %t );\r
+    nm = neldermead_configure(nm,"-boxtolf" , 0.001 );\r
+    nm = neldermead_configure(nm,"-boxboundsalpha" , 0.0001 );\r
+\r
+    //\r
+    // Check that the cost function is correctly connected.\r
+    //\r
+    [ nm , f ] = neldermead_function ( nm , x0 );\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = neldermead_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"neldermead_summary.sci"),-1);\r
+    neldermead_summary(nm)\r
+    mprintf("==========================\n");\r
+    xcomp = neldermead_get(nm,"-xopt");\r
+    mprintf("x expected = [%s]\n", strcat(string(xopt), " "));\r
+    shift = norm(xcomp-xopt)/norm(xopt);\r
+    mprintf(_("Relative error on x = %e\n"), shift);\r
+    fcomp = neldermead_get(nm,"-fopt");\r
+    mprintf(_("f expected = %f\n"), fopt);\r
+    shift = abs(fcomp-fopt)/abs(fopt);\r
+    mprintf(_("Relative error on f = %e\n"), shift);\r
+    nm = neldermead_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        editor ( dname + filename, "readonly" );\r
+    end\r
+endfunction\r
+\r
+demo_boxproblemB();\r
+clear demo_boxproblemB;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 7774a04..613f3ed 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2009-2010 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-
-function demo_dimension()
-
-  mprintf(_("Illustrates the sensitivity to dimension of the Nelder-Mead algorithm\n"));
-  mprintf(_("Han and Neumann. ""Effect of dimensionality on the nelder-mead simplex method."" Optimization Methods and Software, 2006.\n"));
-
-  function [ f , index ] = quadracticn ( x , index )
-    f = sum(x.^2);
-  endfunction
-  
-  //
-  // solvepb --
-  //   Find the solution for the given number of dimensions
-  //
-  function [nbfevals , niter , rho] = solvepb ( n )
-    rand("seed", 0)
-    nm = neldermead_new ();
-    nm = neldermead_configure(nm, "-numberofvariables", n);
-    nm = neldermead_configure(nm, "-function", quadracticn);
-    nm = neldermead_configure(nm, "-x0", zeros(n,1));
-    nm = neldermead_configure(nm, "-maxiter", 2000);
-    nm = neldermead_configure(nm, "-maxfunevals", 2000);
-    nm = neldermead_configure(nm, "-tolxmethod", %f);
-    nm = neldermead_configure(nm, "-tolsimplexizerelative", 0.0);
-    nm = neldermead_configure(nm, "-tolsimplexizeabsolute", 1.e-8);
-    nm = neldermead_configure(nm, "-simplex0method", "given");
-    coords (1,1:n) = zeros(1,n);
-    for i = 2:n+1
-      coords (i,1:n) = 2.0 * rand(1,n) - 1.0;
-    end
-    nm = neldermead_configure(nm, "-coords0", coords);
-    //
-    // Perform optimization
-    //
-    nm = neldermead_search(nm);
-    si0 = neldermead_get ( nm , "-simplex0" );
-    sigma0 = optimsimplex_size ( si0 , "sigmaplus" );
-    siopt = neldermead_get ( nm , "-simplexopt" );
-    sigmaopt = optimsimplex_size ( siopt , "sigmaplus" );
-    niter = neldermead_get ( nm , "-iterations" );
-    rho = (sigmaopt/sigma0)^(1.0/niter);
-    nbfevals = neldermead_get ( nm , "-funevals" );
-    mprintf ( "%d %d %d %f\n", n , nbfevals , niter , rho );
-    nm = neldermead_destroy(nm);
-  endfunction
-
-  nmax = 20;
-  mprintf(_("Maximum dimension:%d\n"),nmax);
-  mprintf(_("Column #1: number of dimensions\n"));
-  mprintf(_("Column #2: number of function evaluations\n"));
-  mprintf(_("Column #3: number of iterations\n"));
-  mprintf(_("Column #4: convergence rate (lower is better)\n"));
-
-  for n = 1:nmax
-    [nbfevals niter rho] = solvepb ( n );
-    array_rho(n) = rho;
-    array_nbfevals(n) = nbfevals;
-    array_niter(n) = niter;
-  end
-  
-  // Plot rate of convergence
-  hh = scf();
-  plot(1:nmax,array_rho)
-  hh.children.x_label.text = _("Number of parameters")
-  hh.children.y_label.text = _("Rate of convergence")
-  hh.children.children.children.mark_mode = "on";
-  hh.children.children.children.mark_style = 9;
-  hh.children.children.children.mark_size = 10;
-
-  // Plot number of function evaluations
-  hh = scf();
-  plot(1:nmax,array_nbfevals)
-  hh.children.x_label.text = _("Number of parameters")
-  hh.children.y_label.text = _("Number of function evaluations")
-  hh.children.children.children.mark_mode = "on";
-  hh.children.children.children.mark_style = 9;
-  hh.children.children.children.mark_size = 10;
-  mprintf(_("End of demo.\n"));
-
-  //
-  //Load this script into the editor
-  //
-  filename = 'neldermead_dimension.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-
-demo_dimension();
-clear demo_dimension;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2009-2010 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+\r
+function demo_dimension()\r
+\r
+    mprintf(_("Illustrates the sensitivity to dimension of the Nelder-Mead algorithm\n"));\r
+    mprintf(_("Han and Neumann. ""Effect of dimensionality on the nelder-mead simplex method."" Optimization Methods and Software, 2006.\n"));\r
+\r
+    function [ f , index ] = quadracticn ( x , index )\r
+        f = sum(x.^2);\r
+    endfunction\r
+\r
+    //\r
+    // solvepb --\r
+    //   Find the solution for the given number of dimensions\r
+    //\r
+    function [nbfevals , niter , rho] = solvepb ( n )\r
+        rand("seed", 0)\r
+        nm = neldermead_new ();\r
+        nm = neldermead_configure(nm, "-numberofvariables", n);\r
+        nm = neldermead_configure(nm, "-function", quadracticn);\r
+        nm = neldermead_configure(nm, "-x0", zeros(n,1));\r
+        nm = neldermead_configure(nm, "-maxiter", 2000);\r
+        nm = neldermead_configure(nm, "-maxfunevals", 2000);\r
+        nm = neldermead_configure(nm, "-tolxmethod", %f);\r
+        nm = neldermead_configure(nm, "-tolsimplexizerelative", 0.0);\r
+        nm = neldermead_configure(nm, "-tolsimplexizeabsolute", 1.e-8);\r
+        nm = neldermead_configure(nm, "-simplex0method", "given");\r
+        coords (1,1:n) = zeros(1,n);\r
+        for i = 2:n+1\r
+            coords (i,1:n) = 2.0 * rand(1,n) - 1.0;\r
+        end\r
+        nm = neldermead_configure(nm, "-coords0", coords);\r
+        //\r
+        // Perform optimization\r
+        //\r
+        nm = neldermead_search(nm);\r
+        si0 = neldermead_get ( nm , "-simplex0" );\r
+        sigma0 = optimsimplex_size ( si0 , "sigmaplus" );\r
+        siopt = neldermead_get ( nm , "-simplexopt" );\r
+        sigmaopt = optimsimplex_size ( siopt , "sigmaplus" );\r
+        niter = neldermead_get ( nm , "-iterations" );\r
+        rho = (sigmaopt/sigma0)^(1.0/niter);\r
+        nbfevals = neldermead_get ( nm , "-funevals" );\r
+        mprintf ( "%d %d %d %f\n", n , nbfevals , niter , rho );\r
+        nm = neldermead_destroy(nm);\r
+    endfunction\r
+\r
+    nmax = 20;\r
+    mprintf(_("Maximum dimension:%d\n"),nmax);\r
+    mprintf(_("Column #1: number of dimensions\n"));\r
+    mprintf(_("Column #2: number of function evaluations\n"));\r
+    mprintf(_("Column #3: number of iterations\n"));\r
+    mprintf(_("Column #4: convergence rate (lower is better)\n"));\r
+\r
+    for n = 1:nmax\r
+        [nbfevals niter rho] = solvepb ( n );\r
+        array_rho(n) = rho;\r
+        array_nbfevals(n) = nbfevals;\r
+        array_niter(n) = niter;\r
+    end\r
+\r
+    // Plot rate of convergence\r
+    hh = scf();\r
+    plot(1:nmax,array_rho)\r
+    hh.children.x_label.text = _("Number of parameters")\r
+    hh.children.y_label.text = _("Rate of convergence")\r
+    hh.children.children.children.mark_mode = "on";\r
+    hh.children.children.children.mark_style = 9;\r
+    hh.children.children.children.mark_size = 10;\r
+\r
+    // Plot number of function evaluations\r
+    hh = scf();\r
+    plot(1:nmax,array_nbfevals)\r
+    hh.children.x_label.text = _("Number of parameters")\r
+    hh.children.y_label.text = _("Number of function evaluations")\r
+    hh.children.children.children.mark_mode = "on";\r
+    hh.children.children.children.mark_style = 9;\r
+    hh.children.children.children.mark_size = 10;\r
+    mprintf(_("End of demo.\n"));\r
+\r
+    //\r
+    //Load this script into the editor\r
+    //\r
+\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'neldermead_dimension.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename, "readonly" );\r
+    end\r
+endfunction\r
+\r
+demo_dimension();\r
+clear demo_dimension;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 833cfb2..23333bb 100644 (file)
@@ -1,80 +1,89 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-
-function demo_outputcmd()
-
-  function [ y , index ] = rosenbrock ( x , index )
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-
-
-  //
-  // myoutputcmd --
-  //  This command is called back by the Nelder-Mead
-  //  algorithm.
-  // Arguments
-  //  state : the current state of the algorithm
-  //    "init", "iter", "done"
-  //  data : the data at the current state
-  //    This is a tlist with the following entries:
-  //    * x : the optimal vector of parameters
-  //    * fval : the minimum function value
-  //    * simplex : the simplex, as a simplex object
-  //    * iteration : the number of iterations performed
-  //    * funccount : the number of function evaluations
-  // stop : set to %t to interrupt the algorithm
-  //
-  
-  function stop = myoutputcmd ( state , data )
-    iter = data.iteration
-    if ( state == "init" ) then
-      mprintf ( "=================================\n");
-      mprintf ( _("Initialization\n"));
-    elseif ( state == "done" ) then
-      mprintf ( "=================================\n");
-      mprintf ( _("End of Optimization\n"));
-    end
-    fc = data.funccount
-    fval = data.fval
-    x = data.x
-    simplex = data.simplex
-    // Simplex is a data structure, which can be managed
-    // by the optimsimplex class.
-    ssize = optimsimplex_size ( simplex )
-    mprintf ( "Iteration #%d, Feval #%d, Fval = %e, x = %s, Size = %e\n", iter, fc, fval, strcat(string(x)," "), ssize);
-       stop = %f
-  endfunction
-
-
-  nm = neldermead_new ();
-  nm = neldermead_configure(nm,"-numberofvariables",2);
-  nm = neldermead_configure(nm,"-function",rosenbrock);
-  nm = neldermead_configure(nm,"-x0",[-1.2 1.0]');
-  nm = neldermead_configure(nm,"-maxiter",200);
-  nm = neldermead_configure(nm,"-maxfunevals",300);
-  nm = neldermead_configure(nm,"-tolfunrelative",10*%eps);
-  nm = neldermead_configure(nm,"-tolxrelative",10*%eps);
-  nm = neldermead_configure(nm,"-outputcommand",myoutputcmd);
-  nm = neldermead_search(nm);
-  nm = neldermead_destroy(nm);
-  mprintf(_("End of demo.\n"));
-  //
-  // Load this script into the editor
-  //
-  filename = 'neldermead_outputcmd.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_outputcmd()
-clear demo_outputcmd;
\ No newline at end of file
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+\r
+function demo_outputcmd()\r
+\r
+    function [ y , index ] = rosenbrock ( x , index )\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+\r
+    //\r
+    // myoutputcmd --\r
+    //  This command is called back by the Nelder-Mead\r
+    //  algorithm.\r
+    // Arguments\r
+    //  state : the current state of the algorithm\r
+    //    "init", "iter", "done"\r
+    //  data : the data at the current state\r
+    //    This is a tlist with the following entries:\r
+    //    * x : the optimal vector of parameters\r
+    //    * fval : the minimum function value\r
+    //    * simplex : the simplex, as a simplex object\r
+    //    * iteration : the number of iterations performed\r
+    //    * funccount : the number of function evaluations\r
+    // stop : set to %t to interrupt the algorithm\r
+    //\r
+\r
+    function stop = myoutputcmd ( state , data )\r
+        iter = data.iteration\r
+        if ( state == "init" ) then\r
+            mprintf ( "=================================\n");\r
+            mprintf ( _("Initialization\n"));\r
+        elseif ( state == "done" ) then\r
+            mprintf ( "=================================\n");\r
+            mprintf ( _("End of Optimization\n"));\r
+        end\r
+        fc = data.funccount\r
+        fval = data.fval\r
+        x = data.x\r
+        simplex = data.simplex\r
+        // Simplex is a data structure, which can be managed\r
+        // by the optimsimplex class.\r
+        ssize = optimsimplex_size ( simplex )\r
+        mprintf ( "Iteration #%d, Feval #%d, Fval = %e, x = %s, Size = %e\n", iter, fc, fval, strcat(string(x)," "), ssize);\r
+        stop = %f\r
+    endfunction\r
+\r
+\r
+    nm = neldermead_new ();\r
+    nm = neldermead_configure(nm,"-numberofvariables",2);\r
+    nm = neldermead_configure(nm,"-function",rosenbrock);\r
+    nm = neldermead_configure(nm,"-x0",[-1.2 1.0]');\r
+    nm = neldermead_configure(nm,"-maxiter",200);\r
+    nm = neldermead_configure(nm,"-maxfunevals",300);\r
+    nm = neldermead_configure(nm,"-tolfunrelative",10*%eps);\r
+    nm = neldermead_configure(nm,"-tolxrelative",10*%eps);\r
+    nm = neldermead_configure(nm,"-outputcommand",myoutputcmd);\r
+    nm = neldermead_search(nm);\r
+    nm = neldermead_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'neldermead_outputcmd.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename, "readonly" );\r
+    end\r
+endfunction\r
+\r
+demo_outputcmd()\r
+clear demo_outputcmd;\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 3d6ae66..fcd2657 100644 (file)
@@ -1,48 +1,56 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nelder_rosen()
-
-  mprintf(_("Defining Rosenbrock function ...\n"));
-  
-  function [ y , index ] = rosenbrock ( x , index )
-    y = 100*(x(2)-x(1)^2)^2+(1-x(1))^2;
-  endfunction
-
-  x0 = [-1.2 1.0]';
-
-  nm = neldermead_new();
-  nm = neldermead_configure(nm, "-numberofvariables", 2);
-  nm = neldermead_configure(nm, "-function", rosenbrock);
-  nm = neldermead_configure(nm, "-x0", x0);
-
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = neldermead_search(nm);
-
-  fx0 = neldermead_get(nm, "-fx0");
-  mprintf("f(x0) = %f, x0=[%s]\n" , fx0 , strcat(string(x0), " "));
-  xopt = neldermead_get(nm, "-xopt");
-  fopt = neldermead_get(nm, "-fopt");
-  mprintf("f(xopt) = %f, xopt=[%s]\n" , fopt , strcat(string(xopt), " "));
-  nm = neldermead_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  filename = 'neldermead_rosenbrock.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-
-demo_nelder_rosen();
-clear demo_nelder_rosen;
\ No newline at end of file
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nelder_rosen()\r
+\r
+    mprintf(_("Defining Rosenbrock function ...\n"));\r
+\r
+    function [ y , index ] = rosenbrock ( x , index )\r
+        y = 100*(x(2)-x(1)^2)^2+(1-x(1))^2;\r
+    endfunction\r
+\r
+    x0 = [-1.2 1.0]';\r
+\r
+    nm = neldermead_new();\r
+    nm = neldermead_configure(nm, "-numberofvariables", 2);\r
+    nm = neldermead_configure(nm, "-function", rosenbrock);\r
+    nm = neldermead_configure(nm, "-x0", x0);\r
+\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = neldermead_search(nm);\r
+\r
+    fx0 = neldermead_get(nm, "-fx0");\r
+    mprintf("f(x0) = %f, x0=[%s]\n" , fx0 , strcat(string(x0), " "));\r
+    xopt = neldermead_get(nm, "-xopt");\r
+    fopt = neldermead_get(nm, "-fopt");\r
+    mprintf("f(xopt) = %f, xopt=[%s]\n" , fopt , strcat(string(xopt), " "));\r
+    nm = neldermead_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'neldermead_rosenbrock.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename, "readonly" );\r
+    end \r
+endfunction\r
+\r
+demo_nelder_rosen();\r
+clear demo_nelder_rosen;\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 1767290..b8bba9b 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nmplot_1()
-
-  filename = 'nmplot_han1.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates the 1st counter example given by Han et al.\n"));
-
-  //
-  // han1 --
-  //   Compute the cost function from the Han Phd Thesis
-  //   which exhibits a failure of the NM method.
-  // Reference 
-  //   Algorithms in Unconstrained Optimization
-  //   Han, Lixing
-  //   2000
-  //   Ph.D., The University of Connecticut
-  //
-  mprintf(_("Defining Han function...\n"));
-  
-  function [ f , index ] = han1 ( x , index )
-    f = x(1)^2 + x(2) * (x(2) + 2.0) * (x(2) - 0.5) * (x(2) - 2.0);
-  endfunction
-  function y = han1C ( x1 , x2 )
-    y = han1 ( [x1 , x2] , 2 )
-  endfunction
-
-
-  mprintf(_("Defining initial simplex coordinates...\n"));
-  coords0 = [
-    0.  -1.  
-    0.   1.  
-    1.   0.  
-  ];
-
-
-  mprintf(_("Creating nmplot object...\n"));
-  nm = nmplot_new ();
-  mprintf(_("Configuring nmplot object...\n"));
-  nm = nmplot_configure(nm, "-numberofvariables", 2);
-  nm = nmplot_configure(nm, "-function", han1);
-  nm = nmplot_configure(nm, "-x0", [1.0 1.0]');
-  nm = nmplot_configure(nm, "-maxiter", 50);
-  nm = nmplot_configure(nm, "-maxfunevals", 300);
-  nm = nmplot_configure(nm, "-tolfunrelative", 10*%eps);
-  nm = nmplot_configure(nm, "-tolxrelative", 10*%eps);
-  nm = nmplot_configure(nm, "-simplex0method", "given");
-  nm = nmplot_configure(nm, "-coords0", coords0);
-  
-  //
-  // Setup output files
-  //
-  mprintf(_("Setup output files...\n"));
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  nm = nmplot_configure(nm, "-simplexfn", simplexfn);
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait)...\n"));
-  nm = nmplot_search(nm);
-    //
-    // Print a summary
-    //
-    exec(fullfile(dname,"nmplot_summary.sci"),-1);
-    nmplot_summary(nm)
-  
-  //
-  // Plot the history of the simplex
-  //
-  mprintf(_("Plotting contour (please wait)...\n"));
-  xmin = -0.2 ; 
-  xmax = 1.2 ; 
-  ymin = -2.0 ; 
-  ymax = 2.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  scf();
-  drawlater();
-  contour ( xdata , ydata , han1C , [-5 -4 -2 -1 0 1 1.5] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  
-  //
-  // Clean-up
-  //
-  deletefile(simplexfn);
-  nm = nmplot_destroy(nm);
-  mprintf(_("End of demo.\n"));
-  
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_nmplot_1();
-clear demo_nmplot_1;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nmplot_1()\r
+\r
+    filename = 'nmplot_han1.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates the 1st counter example given by Han et al.\n"));\r
+\r
+    //\r
+    // han1 --\r
+    //   Compute the cost function from the Han Phd Thesis\r
+    //   which exhibits a failure of the NM method.\r
+    // Reference \r
+    //   Algorithms in Unconstrained Optimization\r
+    //   Han, Lixing\r
+    //   2000\r
+    //   Ph.D., The University of Connecticut\r
+    //\r
+    mprintf(_("Defining Han function...\n"));\r
+\r
+    function [ f , index ] = han1 ( x , index )\r
+        f = x(1)^2 + x(2) * (x(2) + 2.0) * (x(2) - 0.5) * (x(2) - 2.0);\r
+    endfunction\r
+    function y = han1C ( x1 , x2 )\r
+        y = han1 ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+\r
+    mprintf(_("Defining initial simplex coordinates...\n"));\r
+    coords0 = [\r
+    0.  -1.  \r
+    0.   1.  \r
+    1.   0.  \r
+    ];\r
+\r
+\r
+    mprintf(_("Creating nmplot object...\n"));\r
+    nm = nmplot_new ();\r
+    mprintf(_("Configuring nmplot object...\n"));\r
+    nm = nmplot_configure(nm, "-numberofvariables", 2);\r
+    nm = nmplot_configure(nm, "-function", han1);\r
+    nm = nmplot_configure(nm, "-x0", [1.0 1.0]');\r
+    nm = nmplot_configure(nm, "-maxiter", 50);\r
+    nm = nmplot_configure(nm, "-maxfunevals", 300);\r
+    nm = nmplot_configure(nm, "-tolfunrelative", 10*%eps);\r
+    nm = nmplot_configure(nm, "-tolxrelative", 10*%eps);\r
+    nm = nmplot_configure(nm, "-simplex0method", "given");\r
+    nm = nmplot_configure(nm, "-coords0", coords0);\r
+\r
+    //\r
+    // Setup output files\r
+    //\r
+    mprintf(_("Setup output files...\n"));\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn", simplexfn);\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait)...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+\r
+    //\r
+    // Plot the history of the simplex\r
+    //\r
+    mprintf(_("Plotting contour (please wait)...\n"));\r
+    xmin = -0.2 ; \r
+    xmax = 1.2 ; \r
+    ymin = -2.0 ; \r
+    ymax = 2.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    scf();\r
+    drawlater();\r
+    contour ( xdata , ydata , han1C , [-5 -4 -2 -1 0 1 1.5] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+\r
+    //\r
+    // Clean-up\r
+    //\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_nmplot_1();\r
+clear demo_nmplot_1;\r
+\r
+\r
+\r
+\r
+\r\r
index cec5e5b..2d4b4fe 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-
-function demo_nmplot_2()
-  filename = 'nmplot_han2.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates the 2nd counter example given by Han et al.\n"));
-
-  //
-  // han2 --
-  //   Compute the cost function from the Han Phd Thesis
-  //   which exhibits a failure of the NM method.
-  // Reference 
-  //   Algorithms in Unconstrained Optimization
-  //   Han, Lixing
-  //   2000
-  //   Ph.D., The University of Connecticut
-  //
-  function [ f , index ] = han2 ( x , index )
-    if abs(x(2)) <= 1.0 then
-      rho = 0.0
-    elseif x(2) > 1.0 then
-      rho = x(2) - 1
-    else
-      rho = -x(2) - 1
-    end
-    f = x(1)^2 + rho;
-  endfunction
-  function y = han2C ( x1 , x2 )
-    y = han2 ( [x1 , x2] , 2 )
-  endfunction
-
-
-  coords0 = [
-    0.    0.5  
-    0.   -0.5  
-    1.    0.];
-
-  mprintf(_("Creating nmplot object ...\n"));
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm, "-numberofvariables", 2);
-  nm = nmplot_configure(nm, "-function", han2);
-  nm = nmplot_configure(nm, "-x0", [1.0 1.0]');
-  nm = nmplot_configure(nm, "-maxiter", 50);
-  nm = nmplot_configure(nm, "-maxfunevals", 300);
-  nm = nmplot_configure(nm, "-tolfunrelative", 10*%eps);
-  nm = nmplot_configure(nm, "-tolxrelative", 10*%eps);
-  nm = nmplot_configure(nm, "-simplex0method", "given");
-  nm = nmplot_configure(nm, "-coords0", coords0);
-  
-  //
-  // Setup output files
-  //
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  nm = nmplot_configure(nm, "-simplexfn", simplexfn);
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-    //
-    // Print a summary
-    //
-    exec(fullfile(dname,"nmplot_summary.sci"),-1);
-    nmplot_summary(nm)
-  
-  //
-  // Plot
-  //
-  mprintf(_("Plotting contour (please wait) ...\n"));
-  xmin = -0.2 ; 
-  xmax = 1.2 ; 
-  ymin = -1.5 ; 
-  ymax = 1.5 ; 
-  nx = 50 ; 
-  ny = 50;
-  scf();
-  xset("fpf"," ")
-  drawlater();
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  contour ( xdata , ydata , han2C , [0.1 0.2 0.5 1.0 1.5 1.9] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  //
-  // Cleanup
-  deletefile(simplexfn);
-  nm = nmplot_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor (dname + filename, 'readonly');
-
-endfunction
-
-demo_nmplot_2()
-clear demo_nmplot_2;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+\r
+function demo_nmplot_2()\r
+    filename = 'nmplot_han2.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates the 2nd counter example given by Han et al.\n"));\r
+\r
+    //\r
+    // han2 --\r
+    //   Compute the cost function from the Han Phd Thesis\r
+    //   which exhibits a failure of the NM method.\r
+    // Reference \r
+    //   Algorithms in Unconstrained Optimization\r
+    //   Han, Lixing\r
+    //   2000\r
+    //   Ph.D., The University of Connecticut\r
+    //\r
+    function [ f , index ] = han2 ( x , index )\r
+        if abs(x(2)) <= 1.0 then\r
+            rho = 0.0\r
+        elseif x(2) > 1.0 then\r
+            rho = x(2) - 1\r
+        else\r
+            rho = -x(2) - 1\r
+        end\r
+        f = x(1)^2 + rho;\r
+    endfunction\r
+    function y = han2C ( x1 , x2 )\r
+        y = han2 ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+\r
+    coords0 = [\r
+    0.    0.5  \r
+    0.   -0.5  \r
+    1.    0.];\r
+\r
+    mprintf(_("Creating nmplot object ...\n"));\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables", 2);\r
+    nm = nmplot_configure(nm, "-function", han2);\r
+    nm = nmplot_configure(nm, "-x0", [1.0 1.0]');\r
+    nm = nmplot_configure(nm, "-maxiter", 50);\r
+    nm = nmplot_configure(nm, "-maxfunevals", 300);\r
+    nm = nmplot_configure(nm, "-tolfunrelative", 10*%eps);\r
+    nm = nmplot_configure(nm, "-tolxrelative", 10*%eps);\r
+    nm = nmplot_configure(nm, "-simplex0method", "given");\r
+    nm = nmplot_configure(nm, "-coords0", coords0);\r
+\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn", simplexfn);\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+\r
+    //\r
+    // Plot\r
+    //\r
+    mprintf(_("Plotting contour (please wait) ...\n"));\r
+    xmin = -0.2 ; \r
+    xmax = 1.2 ; \r
+    ymin = -1.5 ; \r
+    ymax = 1.5 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    scf();\r
+    xset("fpf"," ")\r
+    drawlater();\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    contour ( xdata , ydata , han2C , [0.1 0.2 0.5 1.0 1.5 1.9] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+    //\r
+    // Cleanup\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_nmplot_2()\r
+clear demo_nmplot_2;\r
+\r
+\r
+\r
+\r
+\r\r
index 490c063..c75cd9b 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_mckinnon2()
-
-  filename = 'nmplot_mckinnon.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Defining McKinnon function...\n"));
-  //% MCKINNON computes the McKinnon function.
-  //
-  //  Discussion:
-  //
-  //  This function has a global minimizer:
-  //
-  //    X* = ( 0.0, -0.5 ), F(X*) = -0.25
-  //
-  //  There are three parameters, TAU, THETA and PHI.
-  //
-  //  1 < TAU, then F is strictly convex.
-  //       and F has continuous first derivatives.
-  //  2 < TAU, then F has continuous second derivatives.
-  //  3 < TAU, then F has continuous third derivatives.
-  //
-  //  However, this function can cause the Nelder-Mead optimization
-  //  algorithm to "converge" to a point which is not the minimizer
-  //  of the function F.
-  //
-  //  Sample parameter values which cause problems for Nelder-Mead 
-  //  include:
-  //
-  //    TAU = 1, THETA = 15, PHI =  10;
-  //    TAU = 2, THETA =  6, PHI =  60;
-  //    TAU = 3, THETA =  6, PHI = 400;
-  //
-  //  To get the bad behavior, we also assume the initial simplex has the form
-  //
-  //    X1 = (0,0),
-  //    X2 = (1,1),
-  //    X3 = (A,B), 
-  //
-  //  where 
-  //
-  //    A = (1+sqrt(33))/8 =  0.84307...
-  //    B = (1-sqrt(33))/8 = -0.59307...
-  //
-  //  Licensing:
-  //
-  //  This code is distributed under the GNU LGPL license.
-  //
-  //  Modified:
-  //
-  //  09 February 2008
-  //
-  //  Author:
-  //
-  //  John Burkardt
-  //
-  //  Reference:
-  //
-  //  Ken McKinnon,
-  //  Convergence of the Nelder-Mead simplex method to a nonstationary point,
-  //  SIAM Journal on Optimization,
-  //  Volume 9, Number 1, 1998, pages 148-158.
-  //
-  //  Parameters:
-  //
-  //  Input, real X(2), the argument of the function.
-  //
-  //  Output, real F, the value of the function at X.
-  //
-  // Copyright (C) 2009 - INRIA - Michael Baudin, Scilab port
-
-  function [ f , index ] = mckinnon3 ( x , index )
-
-    if ( length ( x ) ~= 2 )
-      error (_('Error: function expects a two dimensional input\n'));
-    end
-
-    tau = 3.0;
-    theta = 6.0;
-    phi = 400.0;
-
-    if ( x(1) <= 0.0 )
-      f = theta * phi * abs ( x(1) ).^tau + x(2) * ( 1.0 + x(2) );
-    else
-      f = theta     *     x(1).^tau   + x(2) * ( 1.0 + x(2) );
-    end
-  endfunction
-  function y = mckinnon3C ( x1 , x2 )
-    y = mckinnon3 ( [x1 , x2] , 2 )
-  endfunction
-
-
-  lambda1 = (1.0 + sqrt(33.0))/8.0;
-  lambda2 = (1.0 - sqrt(33.0))/8.0;
-  coords0 = [
-  1.0 1.0
-  0.0 0.0
-  lambda1 lambda2
-  ];
-
-
-  x0 = [1.0 1.0]';
-  mprintf(_("x0 = %s\n"),strcat(string(x0)," "));
-  mprintf(_("Creating object ...\n"));
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm, "-numberofvariables",2);
-  nm = nmplot_configure(nm, "-function",mckinnon3);
-  nm = nmplot_configure(nm, "-x0",x0);
-  nm = nmplot_configure(nm, "-maxiter",200);
-  nm = nmplot_configure(nm, "-maxfunevals",300);
-  nm = nmplot_configure(nm, "-tolfunrelative",10*%eps);
-  nm = nmplot_configure(nm, "-tolxrelative",10*%eps);
-  nm = nmplot_configure(nm, "-simplex0method","given");
-  nm = nmplot_configure(nm, "-coords0",coords0);
-  //
-  // Setup output files
-  //
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  fbarfn = TMPDIR + filesep() + "history.fbar.txt";
-  foptfn = TMPDIR + filesep() + "history.fopt.txt";
-  sigmafn = TMPDIR + filesep() + "history.sigma.txt";
-  nm = nmplot_configure(nm, "-simplexfn",simplexfn);
-  nm = nmplot_configure(nm, "-fbarfn",fbarfn);
-  nm = nmplot_configure(nm, "-foptfn",foptfn);
-  nm = nmplot_configure(nm, "-sigmafn",sigmafn);
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-    //
-    // Print a summary
-    //
-    exec(fullfile(dname,"nmplot_summary.sci"),-1);
-    nmplot_summary(nm)
-  //
-  // Plot
-  //
-  mprintf(_("Plot contour (please wait) ...\n"));
-  xmin = -0.2; 
-  xmax = 1.2 ; 
-  ymin = -2.0 ; 
-  ymax = 2.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  scf();
-  subplot(2,2,1)
-  xset("fpf"," ")
-  drawlater();
-  contour ( xdata , ydata , mckinnon3C , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-       subplot(2,2,2)
-       mytitle = _("Function Value Average"); 
-       myxlabel = _("Iterations");
-    nmplot_historyplot ( nm , fbarfn, mytitle , myxlabel );
-       subplot(2,2,3)
-       mytitle = _("Minimum Function Value") ; 
-       myxlabel = _("Iterations");
-    nmplot_historyplot ( nm , foptfn, mytitle , myxlabel );
-       subplot(2,2,4)
-       mytitle = _("Maximum Oriented length") ; 
-       myxlabel = _("Iterations") ;
-    nmplot_historyplot ( nm , sigmafn, mytitle , myxlabel );
-  deletefile(simplexfn);
-  deletefile(fbarfn);
-  deletefile(foptfn);
-  deletefile(sigmafn);
-  nm = nmplot_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, 'readonly' );
-
-endfunction
-
-demo_mckinnon2()
-clear demo_mckinnon2;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_mckinnon2()\r
+    filename = 'nmplot_mckinnon.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Defining McKinnon function...\n"));\r
+    //% MCKINNON computes the McKinnon function.\r
+    //\r
+    //  Discussion:\r
+    //\r
+    //  This function has a global minimizer:\r
+    //\r
+    //    X* = ( 0.0, -0.5 ), F(X*) = -0.25\r
+    //\r
+    //  There are three parameters, TAU, THETA and PHI.\r
+    //\r
+    //  1 < TAU, then F is strictly convex.\r
+    //       and F has continuous first derivatives.\r
+    //  2 < TAU, then F has continuous second derivatives.\r
+    //  3 < TAU, then F has continuous third derivatives.\r
+    //\r
+    //  However, this function can cause the Nelder-Mead optimization\r
+    //  algorithm to "converge" to a point which is not the minimizer\r
+    //  of the function F.\r
+    //\r
+    //  Sample parameter values which cause problems for Nelder-Mead \r
+    //  include:\r
+    //\r
+    //    TAU = 1, THETA = 15, PHI =  10;\r
+    //    TAU = 2, THETA =  6, PHI =  60;\r
+    //    TAU = 3, THETA =  6, PHI = 400;\r
+    //\r
+    //  To get the bad behavior, we also assume the initial simplex has the form\r
+    //\r
+    //    X1 = (0,0),\r
+    //    X2 = (1,1),\r
+    //    X3 = (A,B), \r
+    //\r
+    //  where \r
+    //\r
+    //    A = (1+sqrt(33))/8 =  0.84307...\r
+    //    B = (1-sqrt(33))/8 = -0.59307...\r
+    //\r
+    //  Licensing:\r
+    //\r
+    //  This code is distributed under the GNU LGPL license.\r
+    //\r
+    //  Modified:\r
+    //\r
+    //  09 February 2008\r
+    //\r
+    //  Author:\r
+    //\r
+    //  John Burkardt\r
+    //\r
+    //  Reference:\r
+    //\r
+    //  Ken McKinnon,\r
+    //  Convergence of the Nelder-Mead simplex method to a nonstationary point,\r
+    //  SIAM Journal on Optimization,\r
+    //  Volume 9, Number 1, 1998, pages 148-158.\r
+    //\r
+    //  Parameters:\r
+    //\r
+    //  Input, real X(2), the argument of the function.\r
+    //\r
+    //  Output, real F, the value of the function at X.\r
+    //\r
+    // Copyright (C) 2009 - INRIA - Michael Baudin, Scilab port\r
+\r
+    function [ f , index ] = mckinnon3 ( x , index )\r
+\r
+        if ( length ( x ) ~= 2 )\r
+            error (_('Error: function expects a two dimensional input\n'));\r
+        end\r
+\r
+        tau = 3.0;\r
+        theta = 6.0;\r
+        phi = 400.0;\r
+\r
+        if ( x(1) <= 0.0 )\r
+            f = theta * phi * abs ( x(1) ).^tau + x(2) * ( 1.0 + x(2) );\r
+        else\r
+            f = theta     *     x(1).^tau   + x(2) * ( 1.0 + x(2) );\r
+        end\r
+    endfunction\r
+    function y = mckinnon3C ( x1 , x2 )\r
+        y = mckinnon3 ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+\r
+    lambda1 = (1.0 + sqrt(33.0))/8.0;\r
+    lambda2 = (1.0 - sqrt(33.0))/8.0;\r
+    coords0 = [\r
+    1.0 1.0\r
+    0.0 0.0\r
+    lambda1 lambda2\r
+    ];\r
+\r
+\r
+    x0 = [1.0 1.0]';\r
+    mprintf(_("x0 = %s\n"),strcat(string(x0)," "));\r
+    mprintf(_("Creating object ...\n"));\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables",2);\r
+    nm = nmplot_configure(nm, "-function",mckinnon3);\r
+    nm = nmplot_configure(nm, "-x0",x0);\r
+    nm = nmplot_configure(nm, "-maxiter",200);\r
+    nm = nmplot_configure(nm, "-maxfunevals",300);\r
+    nm = nmplot_configure(nm, "-tolfunrelative",10*%eps);\r
+    nm = nmplot_configure(nm, "-tolxrelative",10*%eps);\r
+    nm = nmplot_configure(nm, "-simplex0method","given");\r
+    nm = nmplot_configure(nm, "-coords0",coords0);\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    fbarfn = TMPDIR + filesep() + "history.fbar.txt";\r
+    foptfn = TMPDIR + filesep() + "history.fopt.txt";\r
+    sigmafn = TMPDIR + filesep() + "history.sigma.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn",simplexfn);\r
+    nm = nmplot_configure(nm, "-fbarfn",fbarfn);\r
+    nm = nmplot_configure(nm, "-foptfn",foptfn);\r
+    nm = nmplot_configure(nm, "-sigmafn",sigmafn);\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+    //\r
+    // Plot\r
+    //\r
+    mprintf(_("Plot contour (please wait) ...\n"));\r
+    xmin = -0.2; \r
+    xmax = 1.2 ; \r
+    ymin = -2.0 ; \r
+    ymax = 2.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    scf();\r
+    subplot(2,2,1)\r
+    xset("fpf"," ")\r
+    drawlater();\r
+    contour ( xdata , ydata , mckinnon3C , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    subplot(2,2,2)\r
+    mytitle = _("Function Value Average"); \r
+    myxlabel = _("Iterations");\r
+    nmplot_historyplot ( nm , fbarfn, mytitle , myxlabel );\r
+    subplot(2,2,3)\r
+    mytitle = _("Minimum Function Value") ; \r
+    myxlabel = _("Iterations");\r
+    nmplot_historyplot ( nm , foptfn, mytitle , myxlabel );\r
+    subplot(2,2,4)\r
+    mytitle = _("Maximum Oriented length") ; \r
+    myxlabel = _("Iterations") ;\r
+    nmplot_historyplot ( nm , sigmafn, mytitle , myxlabel );\r
+    demo_viewCode(filename);\r
+    deletefile(simplexfn);\r
+    deletefile(fbarfn);\r
+    deletefile(foptfn);\r
+    deletefile(sigmafn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_mckinnon2()\r
+clear demo_mckinnon2;\r
+\r
+\r
+\r
+\r
+\r\r
index a91742a..ef9abdb 100644 (file)
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-
-function demo_mckinnon2()
-
-    filename = 'nmplot_mckinnon2.sce';
-    dname = get_absolute_file_path(filename);
-
-    mprintf(_("Defining McKinnon function...\n"));
-
-    //% MCKINNON computes the McKinnon function.
-    //
-    //  Discussion:
-    //
-    //    This function has a global minimizer:
-    //
-    //      X* = ( 0.0, -0.5 ), F(X*) = -0.25
-    //
-    //    There are three parameters, TAU, THETA and PHI.
-    //
-    //    1 < TAU, then F is strictly convex.
-    //             and F has continuous first derivatives.
-    //    2 < TAU, then F has continuous second derivatives.
-    //    3 < TAU, then F has continuous third derivatives.
-    //
-    //    However, this function can cause the Nelder-Mead optimization
-    //    algorithm to "converge" to a point which is not the minimizer
-    //    of the function F.
-    //
-    //    Sample parameter values which cause problems for Nelder-Mead 
-    //    include:
-    //
-    //      TAU = 1, THETA = 15, PHI =  10;
-    //      TAU = 2, THETA =  6, PHI =  60;
-    //      TAU = 3, THETA =  6, PHI = 400;
-    //
-    //    To get the bad behavior, we also assume the initial simplex has the form
-    //
-    //      X1 = (0,0),
-    //      X2 = (1,1),
-    //      X3 = (A,B), 
-    //
-    //    where 
-    //
-    //      A = (1+sqrt(33))/8 =  0.84307...
-    //      B = (1-sqrt(33))/8 = -0.59307...
-    //
-    //  Licensing:
-    //
-    //    This code is distributed under the GNU LGPL license.
-    //
-    //  Modified:
-    //
-    //    09 February 2008
-    //
-    //  Author:
-    //
-    //    John Burkardt
-    //
-    //  Reference:
-    //
-    //    Ken McKinnon,
-    //    Convergence of the Nelder-Mead simplex method to a nonstationary point,
-    //    SIAM Journal on Optimization,
-    //    Volume 9, Number 1, 1998, pages 148-158.
-    //
-    //  Parameters:
-    //
-    //    Input, real X(2), the argument of the function.
-    //
-    //    Output, real F, the value of the function at X.
-    //
-    // Copyright (C) 2009 - INRIA - Michael Baudin, Scilab port
-
-    function [ f , index ] = mckinnon3 ( x , index )
-
-        if ( length ( x ) ~= 2 )
-            error (_('Error: function expects a two dimensional input\n'));
-        end
-
-        tau = 3.0;
-        theta = 6.0;
-        phi = 400.0;
-
-        if ( x(1) <= 0.0 )
-            f = theta * phi * abs ( x(1) ).^tau + x(2) * ( 1.0 + x(2) );
-        else
-            f = theta       *       x(1).^tau   + x(2) * ( 1.0 + x(2) );
-        end
-    endfunction
-  function y = mckinnon3C ( x1 , x2 )
-    y = mckinnon3 ( [x1 , x2] , 2 )
-  endfunction
-
-    lambda1 = (1.0 + sqrt(33.0))/8.0;
-    lambda2 = (1.0 - sqrt(33.0))/8.0;
-    coords0 = [
-    1.0  1.0
-    0.0  0.0
-    lambda1 lambda2
-    ];
-
-
-    x0 = [1.0 1.0]';
-    mprintf(_("x0=%s\n"), strcat(string(x0)," "));
-    mprintf(_("Creating object...\n"));
-    nm = nmplot_new ();
-    nm = nmplot_configure(nm, "-numberofvariables",2);
-    nm = nmplot_configure(nm, "-function",mckinnon3);
-    nm = nmplot_configure(nm, "-x0",x0);
-    nm = nmplot_configure(nm, "-maxiter",200);
-    nm = nmplot_configure(nm, "-maxfunevals",300);
-    nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-6);
-    nm = nmplot_configure(nm, "-simplex0method","given");
-    nm = nmplot_configure(nm, "-coords0",coords0);
-    nm = nmplot_configure(nm, "-kelleystagnationflag",%t);
-    nm = nmplot_configure(nm, "-restartflag",%t);
-    nm = nmplot_configure(nm, "-restartdetection","kelley");
-    //
-    // Setup output files
-    //
-    simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-    fbarfn = TMPDIR + filesep() + "history.fbar.txt";
-    foptfn = TMPDIR + filesep() + "history.fopt.txt";
-    sigmafn = TMPDIR + filesep() + "history.sigma.txt";
-    nm = nmplot_configure(nm, "-simplexfn",simplexfn);
-    nm = nmplot_configure(nm, "-fbarfn",fbarfn);
-    nm = nmplot_configure(nm, "-foptfn",foptfn);
-    nm = nmplot_configure(nm, "-sigmafn",sigmafn);
-    //
-    // Perform optimization
-    //
-    mprintf(_("Searching (please wait) ...\n"));
-    nm = nmplot_search(nm);
-    disp(nm);
-    
-    //
-    // Plot
-    //
-    mprintf(_("Plot contour (please wait) ...\n"));
-  xmin = -0.2; 
-  xmax = 1.2 ; 
-  ymin = -2.0 ; 
-  ymax = 2.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-    scf();
-       subplot(2,2,1)
-    xset("fpf"," ")
-    drawlater();
-    contour ( xdata , ydata , mckinnon3C , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )
-    nmplot_simplexhistory ( nm );
-    drawnow();
-       subplot(2,2,2)
-       mytitle = _("Function Value Average"); 
-       myxlabel = _("Iterations");
-    nmplot_historyplot ( nm , fbarfn, mytitle , myxlabel );
-       subplot(2,2,3)
-       mytitle = _("Minimum Function Value") ; 
-       myxlabel = _("Iterations");
-    nmplot_historyplot ( nm , foptfn, mytitle , myxlabel );
-       subplot(2,2,4)
-       mytitle = _("Maximum Oriented length") ; 
-       myxlabel = _("Iterations") ;
-    nmplot_historyplot ( nm , sigmafn, mytitle , myxlabel );
-    deletefile(simplexfn);
-    deletefile(fbarfn);
-    deletefile(foptfn);
-    deletefile(sigmafn);
-    nm = nmplot_destroy(nm);
-    mprintf(_("End of demo.\n"));
-
-    //
-    // Load this script into the editor
-    //
-    editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_mckinnon2();
-clear demo_mckinnon2
-
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+\r
+function demo_mckinnon2()\r
+\r
+    mprintf(_("Defining McKinnon function...\n"));\r
+\r
+    //% MCKINNON computes the McKinnon function.\r
+    //\r
+    //  Discussion:\r
+    //\r
+    //    This function has a global minimizer:\r
+    //\r
+    //      X* = ( 0.0, -0.5 ), F(X*) = -0.25\r
+    //\r
+    //    There are three parameters, TAU, THETA and PHI.\r
+    //\r
+    //    1 < TAU, then F is strictly convex.\r
+    //             and F has continuous first derivatives.\r
+    //    2 < TAU, then F has continuous second derivatives.\r
+    //    3 < TAU, then F has continuous third derivatives.\r
+    //\r
+    //    However, this function can cause the Nelder-Mead optimization\r
+    //    algorithm to "converge" to a point which is not the minimizer\r
+    //    of the function F.\r
+    //\r
+    //    Sample parameter values which cause problems for Nelder-Mead \r
+    //    include:\r
+    //\r
+    //      TAU = 1, THETA = 15, PHI =  10;\r
+    //      TAU = 2, THETA =  6, PHI =  60;\r
+    //      TAU = 3, THETA =  6, PHI = 400;\r
+    //\r
+    //    To get the bad behavior, we also assume the initial simplex has the form\r
+    //\r
+    //      X1 = (0,0),\r
+    //      X2 = (1,1),\r
+    //      X3 = (A,B), \r
+    //\r
+    //    where \r
+    //\r
+    //      A = (1+sqrt(33))/8 =  0.84307...\r
+    //      B = (1-sqrt(33))/8 = -0.59307...\r
+    //\r
+    //  Licensing:\r
+    //\r
+    //    This code is distributed under the GNU LGPL license.\r
+    //\r
+    //  Modified:\r
+    //\r
+    //    09 February 2008\r
+    //\r
+    //  Author:\r
+    //\r
+    //    John Burkardt\r
+    //\r
+    //  Reference:\r
+    //\r
+    //    Ken McKinnon,\r
+    //    Convergence of the Nelder-Mead simplex method to a nonstationary point,\r
+    //    SIAM Journal on Optimization,\r
+    //    Volume 9, Number 1, 1998, pages 148-158.\r
+    //\r
+    //  Parameters:\r
+    //\r
+    //    Input, real X(2), the argument of the function.\r
+    //\r
+    //    Output, real F, the value of the function at X.\r
+    //\r
+    // Copyright (C) 2009 - INRIA - Michael Baudin, Scilab port\r
+\r
+    function [ f , index ] = mckinnon3 ( x , index )\r
+\r
+        if ( length ( x ) ~= 2 )\r
+            error (_('Error: function expects a two dimensional input\n'));\r
+        end\r
+\r
+        tau = 3.0;\r
+        theta = 6.0;\r
+        phi = 400.0;\r
+\r
+        if ( x(1) <= 0.0 )\r
+            f = theta * phi * abs ( x(1) ).^tau + x(2) * ( 1.0 + x(2) );\r
+        else\r
+            f = theta       *       x(1).^tau   + x(2) * ( 1.0 + x(2) );\r
+        end\r
+    endfunction\r
+    function y = mckinnon3C ( x1 , x2 )\r
+        y = mckinnon3 ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+    lambda1 = (1.0 + sqrt(33.0))/8.0;\r
+    lambda2 = (1.0 - sqrt(33.0))/8.0;\r
+    coords0 = [\r
+    1.0  1.0\r
+    0.0  0.0\r
+    lambda1 lambda2\r
+    ];\r
+\r
+\r
+    x0 = [1.0 1.0]';\r
+    mprintf(_("x0=%s\n"), strcat(string(x0)," "));\r
+    mprintf(_("Creating object...\n"));\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables",2);\r
+    nm = nmplot_configure(nm, "-function",mckinnon3);\r
+    nm = nmplot_configure(nm, "-x0",x0);\r
+    nm = nmplot_configure(nm, "-maxiter",200);\r
+    nm = nmplot_configure(nm, "-maxfunevals",300);\r
+    nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-6);\r
+    nm = nmplot_configure(nm, "-simplex0method","given");\r
+    nm = nmplot_configure(nm, "-coords0",coords0);\r
+    nm = nmplot_configure(nm, "-kelleystagnationflag",%t);\r
+    nm = nmplot_configure(nm, "-restartflag",%t);\r
+    nm = nmplot_configure(nm, "-restartdetection","kelley");\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    fbarfn = TMPDIR + filesep() + "history.fbar.txt";\r
+    foptfn = TMPDIR + filesep() + "history.fopt.txt";\r
+    sigmafn = TMPDIR + filesep() + "history.sigma.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn",simplexfn);\r
+    nm = nmplot_configure(nm, "-fbarfn",fbarfn);\r
+    nm = nmplot_configure(nm, "-foptfn",foptfn);\r
+    nm = nmplot_configure(nm, "-sigmafn",sigmafn);\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    disp(nm);\r
+\r
+    //\r
+    // Plot\r
+    //\r
+    mprintf(_("Plot contour (please wait) ...\n"));\r
+    xmin = -0.2; \r
+    xmax = 1.2 ; \r
+    ymin = -2.0 ; \r
+    ymax = 2.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    scf();\r
+    subplot(2,2,1)\r
+    xset("fpf"," ")\r
+    drawlater();\r
+    contour ( xdata , ydata , mckinnon3C , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    subplot(2,2,2)\r
+    mytitle = _("Function Value Average"); \r
+    myxlabel = _("Iterations");\r
+    nmplot_historyplot ( nm , fbarfn, mytitle , myxlabel );\r
+    subplot(2,2,3)\r
+    mytitle = _("Minimum Function Value") ; \r
+    myxlabel = _("Iterations");\r
+    nmplot_historyplot ( nm , foptfn, mytitle , myxlabel );\r
+    subplot(2,2,4)\r
+    mytitle = _("Maximum Oriented length") ; \r
+    myxlabel = _("Iterations") ;\r
+    nmplot_historyplot ( nm , sigmafn, mytitle , myxlabel );\r
+    demo_viewCode("nmplot_mckinnon2.sce");\r
+    deletefile(simplexfn);\r
+    deletefile(fbarfn);\r
+    deletefile(foptfn);\r
+    deletefile(sigmafn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_mckinnon2();\r
+clear demo_mckinnon2\r
+\r
+\r\r
index dfe88f7..f5ab3a2 100644 (file)
@@ -1,87 +1,86 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nmplot_qfixed()
-
-  filename = 'nmplot_quadratic.fixed.sce';
-  dname = get_absolute_file_path(filename);
-  
-  mprintf(_("Illustrates that the fixed-shape Spendley et al. algorithm performs well on a quadratic test case.\n"));
-  mprintf(_("Defining quadratic function ...\n"));
-  
-  function [ y , index ] = quadratic ( x , index )
-    y = x(1)^2 + x(2)^2 - x(1) * x(2);
-  endfunction
-  function y = quadraticC ( x1, x2 )
-    y = quadratic ( [x1, x2] , 2 )
-  endfunction
-
-  mprintf(_("Creating nmplot object ...\n"));
-  
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm, "-numberofvariables",2);
-  nm = nmplot_configure(nm, "-function",quadratic);
-  nm = nmplot_configure(nm, "-x0",[2.0 2.0]');
-  nm = nmplot_configure(nm, "-maxiter",100);
-  nm = nmplot_configure(nm, "-maxfunevals",300);
-  nm = nmplot_configure(nm, "-tolxmethod",%f);
-  nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);
-  nm = nmplot_configure(nm, "-simplex0method","spendley");
-  nm = nmplot_configure(nm, "-method","fixed");
-  //
-  // Setup output files
-  //
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  
-  nm = nmplot_configure(nm, "-simplexfn",simplexfn);
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"nmplot_summary.sci"),-1);
-  nmplot_summary(nm)
-
-  // Plot simplex history
-  scf();
-  // Plot the contours of the cost function and the simplex history
-  mprintf(_("Plotting contour (please wait) ...\n"));
-  nm = nmplot_configure(nm, "-verbose",0);
-  xmin = -2.0 ; 
-  xmax = 4.0 ; 
-  ymin = -2.0 ; 
-  ymax = 4.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  drawlater();
-  contour ( xdata , ydata , quadraticC , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  
-  // Clean-up
-  deletefile(simplexfn);
-  nm = nmplot_destroy(nm);
-  mprintf("End of demo.\n");
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction 
-
-demo_nmplot_qfixed();
-clear demo_nmplot_qfixed;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nmplot_qfixed()\r
+\r
+    filename = 'nmplot_quadratic.fixed.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates that the fixed-shape Spendley et al. algorithm performs well on a quadratic test case.\n"));\r
+    mprintf(_("Defining quadratic function ...\n"));\r
+\r
+    function [ y , index ] = quadratic ( x , index )\r
+        y = x(1)^2 + x(2)^2 - x(1) * x(2);\r
+    endfunction\r
+    function y = quadraticC ( x1, x2 )\r
+        y = quadratic ( [x1, x2] , 2 )\r
+    endfunction\r
+\r
+    mprintf(_("Creating nmplot object ...\n"));\r
+\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables",2);\r
+    nm = nmplot_configure(nm, "-function",quadratic);\r
+    nm = nmplot_configure(nm, "-x0",[2.0 2.0]');\r
+    nm = nmplot_configure(nm, "-maxiter",100);\r
+    nm = nmplot_configure(nm, "-maxfunevals",300);\r
+    nm = nmplot_configure(nm, "-tolxmethod",%f);\r
+    nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);\r
+    nm = nmplot_configure(nm, "-simplex0method","spendley");\r
+    nm = nmplot_configure(nm, "-method","fixed");\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+\r
+    nm = nmplot_configure(nm, "-simplexfn",simplexfn);\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+\r
+    // Plot simplex history\r
+    scf();\r
+    // Plot the contours of the cost function and the simplex history\r
+    mprintf(_("Plotting contour (please wait) ...\n"));\r
+    nm = nmplot_configure(nm, "-verbose",0);\r
+    xmin = -2.0 ; \r
+    xmax = 4.0 ; \r
+    ymin = -2.0 ; \r
+    ymax = 4.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    drawlater();\r
+    contour ( xdata , ydata , quadraticC , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+\r
+    // Clean-up\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf("End of demo.\n");\r
+endfunction \r
+\r
+demo_nmplot_qfixed();\r
+clear demo_nmplot_qfixed;\r
+\r
+\r
+\r\r
index c73828c..bc4fa8f 100644 (file)
@@ -1,89 +1,86 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nmplot_qfixed2()
-
-  filename = 'nmplot_quadratic.fixed2.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates that the fixed-shape Spendley et al. algorithm performs badly on a badly quadratic test case.\n"));
-  mprintf(_("Defining quadratic function...\n"));
-  a = 100;
-  
-  function [ y , index ] = quadratic ( x , index )
-    y = a * x(1)^2 + x(2)^2;
-  endfunction
-  function y = quadraticC ( x1 , x2 )
-    y = quadratic ( [x1 , x2] , 2 )
-  endfunction
-
-  mprintf(_("Creating nmplot object ...\n"));
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm, "-numberofvariables",2);
-  nm = nmplot_configure(nm, "-function",quadratic);
-  nm = nmplot_configure(nm, "-x0",[10.0 10.0]');
-  nm = nmplot_configure(nm, "-maxiter",400);
-  nm = nmplot_configure(nm, "-maxfunevals",400);
-  nm = nmplot_configure(nm, "-tolxmethod",%f);
-  nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);
-  nm = nmplot_configure(nm, "-simplex0method","spendley");
-  nm = nmplot_configure(nm, "-method","fixed");
-  
-  //
-  // Setup output files
-  //
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  nm = nmplot_configure(nm, "-simplexfn",simplexfn);
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"nmplot_summary.sci"),-1);
-  nmplot_summary(nm)
-  //
-  // Plot the contours of the cost function and the simplex history
-  mprintf(_("Plotting contour (please wait) ...\n"));
-  nm = nmplot_configure(nm, "-verbose", 0);
-  xmin = -5.0 ; 
-  xmax = 12.0 ; 
-  ymin = -2.0 ; 
-  ymax = 12.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  scf()
-  drawlater();
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  contour ( xdata , ydata , quadraticC , [10.0 50 100 1000 2000 5000 10000 20000] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  
-  // Clean-up
-  deletefile(simplexfn);
-  nm = nmplot_destroy(nm);
-  mprintf("End of demo.\n");
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_nmplot_qfixed2();
-clear demo_nmplot_qfixed2;
-
-
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nmplot_qfixed2()\r
+\r
+    filename = 'nmplot_quadratic.fixed2.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates that the fixed-shape Spendley et al. algorithm performs badly on a badly quadratic test case.\n"));\r
+    mprintf(_("Defining quadratic function...\n"));\r
+    a = 100;\r
+\r
+    function [ y , index ] = quadratic ( x , index )\r
+        y = a * x(1)^2 + x(2)^2;\r
+    endfunction\r
+    function y = quadraticC ( x1 , x2 )\r
+        y = quadratic ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+    mprintf(_("Creating nmplot object ...\n"));\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables",2);\r
+    nm = nmplot_configure(nm, "-function",quadratic);\r
+    nm = nmplot_configure(nm, "-x0",[10.0 10.0]');\r
+    nm = nmplot_configure(nm, "-maxiter",400);\r
+    nm = nmplot_configure(nm, "-maxfunevals",400);\r
+    nm = nmplot_configure(nm, "-tolxmethod",%f);\r
+    nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);\r
+    nm = nmplot_configure(nm, "-simplex0method","spendley");\r
+    nm = nmplot_configure(nm, "-method","fixed");\r
+\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn",simplexfn);\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+    //\r
+    // Plot the contours of the cost function and the simplex history\r
+    mprintf(_("Plotting contour (please wait) ...\n"));\r
+    nm = nmplot_configure(nm, "-verbose", 0);\r
+    xmin = -5.0 ; \r
+    xmax = 12.0 ; \r
+    ymin = -2.0 ; \r
+    ymax = 12.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    scf()\r
+    drawlater();\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    contour ( xdata , ydata , quadraticC , [10.0 50 100 1000 2000 5000 10000 20000] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+\r
+    // Clean-up\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf("End of demo.\n");\r
+endfunction\r
+\r
+demo_nmplot_qfixed2();\r
+clear demo_nmplot_qfixed2;\r
+\r
+\r
+\r\r
index a3b3018..683f246 100644 (file)
@@ -1,85 +1,83 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nmplot_qvariable()
-
-  filename = 'nmplot_quadratic.variable.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates that the variable-shape Nelder-Mead algorithm performs well on a quadratic test case.\n"));
-  mprintf(_("Defining quadratic function ...\n"));
-  function [ y , index ] = quadratic ( x , index )
-    y = x(1)^2 + x(2)^2 - x(1) * x(2);
-  endfunction
-  function y = quadraticC ( x1 , x2 )
-    y = quadratic ( [x1 , x2] , 2 )
-  endfunction
-
-  mprintf(_("Creating nmplot object...\n"));
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm, "-numberofvariables",2);
-  nm = nmplot_configure(nm, "-function",quadratic);
-  nm = nmplot_configure(nm, "-x0",[2.0 2.0]');
-  nm = nmplot_configure(nm, "-maxiter",100);
-  nm = nmplot_configure(nm, "-maxfunevals",300);
-  nm = nmplot_configure(nm, "-tolxmethod",%f);
-  nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);
-  nm = nmplot_configure(nm, "-simplex0method","spendley");
-  
-  //
-  // Setup output files
-  //
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  nm = nmplot_configure(nm, "-simplexfn",simplexfn);
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"nmplot_summary.sci"),-1);
-  nmplot_summary(nm)
-  //
-  // Plot the contours of the cost function and the simplex history
-  mprintf(_("Plotting contour (please wait) ...\n"));
-  nm = nmplot_configure(nm, "-verbose", 0);
-  xmin = -2.0 ; 
-  xmax = 4.0 ; 
-  ymin = -2.0 ; 
-  ymax = 4.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  scf()
-  drawlater();
-  contour ( xdata , ydata , quadraticC , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  
-  // Clean-up
-  deletefile(simplexfn);
-  nm = nmplot_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_nmplot_qvariable();
-clear demo_nmplot_qvariable;
-
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nmplot_qvariable()\r
+\r
+    filename = 'nmplot_quadratic.variable.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates that the variable-shape Nelder-Mead algorithm performs well on a quadratic test case.\n"));\r
+    mprintf(_("Defining quadratic function ...\n"));\r
+    function [ y , index ] = quadratic ( x , index )\r
+        y = x(1)^2 + x(2)^2 - x(1) * x(2);\r
+    endfunction\r
+    function y = quadraticC ( x1 , x2 )\r
+        y = quadratic ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+    mprintf(_("Creating nmplot object...\n"));\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables",2);\r
+    nm = nmplot_configure(nm, "-function",quadratic);\r
+    nm = nmplot_configure(nm, "-x0",[2.0 2.0]');\r
+    nm = nmplot_configure(nm, "-maxiter",100);\r
+    nm = nmplot_configure(nm, "-maxfunevals",300);\r
+    nm = nmplot_configure(nm, "-tolxmethod",%f);\r
+    nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);\r
+    nm = nmplot_configure(nm, "-simplex0method","spendley");\r
+\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn",simplexfn);\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+    //\r
+    // Plot the contours of the cost function and the simplex history\r
+    mprintf(_("Plotting contour (please wait) ...\n"));\r
+    nm = nmplot_configure(nm, "-verbose", 0);\r
+    xmin = -2.0 ; \r
+    xmax = 4.0 ; \r
+    ymin = -2.0 ; \r
+    ymax = 4.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    scf()\r
+    drawlater();\r
+    contour ( xdata , ydata , quadraticC , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+\r
+    // Clean-up\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_nmplot_qvariable();\r
+clear demo_nmplot_qvariable;\r
+\r
+\r
+\r\r
index 2f664d1..6f39e54 100644 (file)
@@ -1,84 +1,83 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nmplot_qvariable2()
-
-  filename = 'nmplot_quadratic.variable2.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates that the Nelder-Mead algorithm performs correctly on a badly quadratic test case.\n"));
-  mprintf(_("Defining quadratic function ...\n"));
-  a = 100.0;
-  function [ y , index ] = quadratic ( x , index )
-    y = a * x(1)^2 + x(2)^2;
-  endfunction
-  function y = quadraticC ( x1 , x2 )
-    [ y , index ] = quadratic ( [x1 , x2] , 2 )
-  endfunction
-
-  mprintf(_("Creating nmplot object...\n"));
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm, "-numberofvariables",2);
-  nm = nmplot_configure(nm, "-function",quadratic);
-  nm = nmplot_configure(nm, "-x0",[10.0 10.0]');
-  nm = nmplot_configure(nm, "-maxiter",400);
-  nm = nmplot_configure(nm, "-maxfunevals",400);
-  nm = nmplot_configure(nm, "-tolxmethod",%f);
-  nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);
-  nm = nmplot_configure(nm, "-simplex0method","spendley");
-  
-  //
-  // Setup output files
-  //
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  nm = nmplot_configure(nm, "-simplexfn",simplexfn);
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"nmplot_summary.sci"),-1);
-  nmplot_summary(nm)
-  //
-  // Plot the contours of the cost function and the simplex history
-  mprintf(_("Plotting contour (please wait) ...\n"));
-  nm = nmplot_configure(nm, "-verbose", 0);
-  xmin = -5.0 ; 
-  xmax = 12.0 ; 
-  ymin = -2.0 ; 
-  ymax = 12.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  scf()
-  drawlater();
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  contour ( xdata , ydata , quadraticC , [10.0 50 100 1000 2000 5000 10000 20000] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  //
-  // Clean-up
-  deletefile(simplexfn);
-  nm = nmplot_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_nmplot_qvariable2();
-clear demo_nmplot_qvariable2;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nmplot_qvariable2()\r
+\r
+    filename = 'nmplot_quadratic.variable2.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates that the Nelder-Mead algorithm performs correctly on a badly quadratic test case.\n"));\r
+    mprintf(_("Defining quadratic function ...\n"));\r
+    a = 100.0;\r
+    function [ y , index ] = quadratic ( x , index )\r
+        y = a * x(1)^2 + x(2)^2;\r
+    endfunction\r
+    function y = quadraticC ( x1 , x2 )\r
+        [ y , index ] = quadratic ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+    mprintf(_("Creating nmplot object...\n"));\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables",2);\r
+    nm = nmplot_configure(nm, "-function",quadratic);\r
+    nm = nmplot_configure(nm, "-x0",[10.0 10.0]');\r
+    nm = nmplot_configure(nm, "-maxiter",400);\r
+    nm = nmplot_configure(nm, "-maxfunevals",400);\r
+    nm = nmplot_configure(nm, "-tolxmethod",%f);\r
+    nm = nmplot_configure(nm, "-tolsimplexizerelative",1.e-8);\r
+    nm = nmplot_configure(nm, "-simplex0method","spendley");\r
+\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn",simplexfn);\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+    //\r
+    // Plot the contours of the cost function and the simplex history\r
+    mprintf(_("Plotting contour (please wait) ...\n"));\r
+    nm = nmplot_configure(nm, "-verbose", 0);\r
+    xmin = -5.0 ; \r
+    xmax = 12.0 ; \r
+    ymin = -2.0 ; \r
+    ymax = 12.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    scf()\r
+    drawlater();\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    contour ( xdata , ydata , quadraticC , [10.0 50 100 1000 2000 5000 10000 20000] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+    //\r
+    // Clean-up\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_nmplot_qvariable2();\r
+clear demo_nmplot_qvariable2;\r
+\r
+\r
+\r\r
index 712a065..5b652af 100644 (file)
@@ -1,84 +1,82 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nmplot_rosen()
-
-  filename = 'nmplot_rosenbrock.fixed.sce';
-  dname = get_absolute_file_path(filename);
-
-  mprintf(_("Illustrates that the fixed-shape Spendley et al. algorithm does NOT perform well on Rosenbrock test case.\n"));
-  mprintf(_("Defining Rosenbrock function...\n"));
-  
-  function [ y , index ] = rosenbrock ( x , index )
-    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-  function [ y , index ] = rosenbrockC ( x1 , x2 )
-    y = rosenbrock ( [x1 , x2] , 2 )
-  endfunction
-
-  mprintf(_("Creating nmplot object ...\n"));
-  nm = nmplot_new ();
-  nm = nmplot_configure(nm, "-numberofvariables",2);
-  nm = nmplot_configure(nm, "-function",rosenbrock);
-  nm = nmplot_configure(nm, "-x0",[-1.2 1.0]');
-  nm = nmplot_configure(nm, "-maxiter",100);
-  nm = nmplot_configure(nm, "-maxfunevals",300);
-  nm = nmplot_configure(nm, "-tolfunrelative",10*%eps);
-  nm = nmplot_configure(nm, "-tolxrelative",10*%eps);
-  nm = nmplot_configure(nm, "-method","fixed");
-  
-  //
-  // Setup output files
-  //
-  simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-  nm = nmplot_configure(nm, "-simplexfn",simplexfn);
-  
-  //
-  // Perform optimization
-  //
-  mprintf(_("Searching (please wait) ...\n"));
-  nm = nmplot_search(nm);
-  //
-  // Print a summary
-  //
-  exec(fullfile(dname,"nmplot_summary.sci"),-1);
-  nmplot_summary(nm)
-  
-  // Plot the contours of the cost function and the simplex history
-  mprintf(_("Plotting contour (please wait) ...\n"));
-  xmin = -2.0 ; 
-  xmax = 2.0 ; 
-  ymin = -2.0 ; 
-  ymax = 2.0 ; 
-  nx = 50 ; 
-  ny = 50;
-  xdata=linspace(xmin,xmax,nx);
-  ydata=linspace(ymin,ymax,ny);
-  f = scf();
-  drawlater();
-  contour ( xdata , ydata , rosenbrockC , [2 10 100 500 1000 2000] )
-  nmplot_simplexhistory ( nm );
-  drawnow();
-  //
-  deletefile(simplexfn);
-  nm = nmplot_destroy(nm);
-  mprintf(_("End of demo.\n"));
-
-  //
-  // Load this script into the editor
-  //
-  
-  editor ( dname + filename, "readonly" );
-
-endfunction
-
-demo_nmplot_rosen()
-clear demo_nmplot_rosen;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nmplot_rosen()\r
+\r
+    filename = 'nmplot_rosenbrock.fixed.sce';\r
+    dname = get_absolute_file_path(filename);\r
+\r
+    mprintf(_("Illustrates that the fixed-shape Spendley et al. algorithm does NOT perform well on Rosenbrock test case.\n"));\r
+    mprintf(_("Defining Rosenbrock function...\n"));\r
+\r
+    function [ y , index ] = rosenbrock ( x , index )\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+    function [ y , index ] = rosenbrockC ( x1 , x2 )\r
+        y = rosenbrock ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+    mprintf(_("Creating nmplot object ...\n"));\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm, "-numberofvariables",2);\r
+    nm = nmplot_configure(nm, "-function",rosenbrock);\r
+    nm = nmplot_configure(nm, "-x0",[-1.2 1.0]');\r
+    nm = nmplot_configure(nm, "-maxiter",100);\r
+    nm = nmplot_configure(nm, "-maxfunevals",300);\r
+    nm = nmplot_configure(nm, "-tolfunrelative",10*%eps);\r
+    nm = nmplot_configure(nm, "-tolxrelative",10*%eps);\r
+    nm = nmplot_configure(nm, "-method","fixed");\r
+\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    nm = nmplot_configure(nm, "-simplexfn",simplexfn);\r
+\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf(_("Searching (please wait) ...\n"));\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+\r
+    // Plot the contours of the cost function and the simplex history\r
+    mprintf(_("Plotting contour (please wait) ...\n"));\r
+    xmin = -2.0 ; \r
+    xmax = 2.0 ; \r
+    ymin = -2.0 ; \r
+    ymax = 2.0 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    f = scf();\r
+    drawlater();\r
+    contour ( xdata , ydata , rosenbrockC , [2 10 100 500 1000 2000] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+    //\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf(_("End of demo.\n"));\r
+endfunction\r
+\r
+demo_nmplot_rosen()\r
+clear demo_nmplot_rosen;\r
+\r
+\r
+\r\r
index f09c1fa..82d36a1 100644 (file)
@@ -1,79 +1,78 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-// Copyright (C) 2011 - DIGITEO - Michael Baudin
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_nmplot_rosenvar()
-
-    filename = 'nmplot_rosenbrock.sce';
-    dname = get_absolute_file_path(filename);
-    mprintf("Illustrates the Nelder-Mead algorithm on Rosenbrock test case.\n");
-    mprintf("Defining Rosenbrock function...\n");
-    function [ y , index ] = rosenbrock ( x , index )
-        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-    endfunction
-    function [ y , index ] = rosenbrockC ( x1 , x2 )
-        y = rosenbrock ( [x1 , x2] , 2 )
-    endfunction
-
-    mprintf("Creating nmplot object...\n");
-    nm = nmplot_new ();
-    nm = nmplot_configure(nm,"-numberofvariables",2);
-    nm = nmplot_configure(nm,"-function",rosenbrock);
-    nm = nmplot_configure(nm,"-x0",[-1.2 1.0]');
-    nm = nmplot_configure(nm,"-maxiter",200);
-    nm = nmplot_configure(nm,"-maxfunevals",300);
-    nm = nmplot_configure(nm,"-tolfunrelative",10*%eps);
-    nm = nmplot_configure(nm,"-tolxrelative",10*%eps);
-    //
-    // Setup output files
-    //
-    simplexfn = TMPDIR + filesep() + "history.simplex.txt";
-    nm = nmplot_configure(nm,"-simplexfn",simplexfn);
-    //
-    // Perform optimization
-    //
-    mprintf("Searching (please wait)...\n");
-    nm = nmplot_search(nm);
-    //
-    // Print a summary
-    //
-    exec(fullfile(dname,"nmplot_summary.sci"),-1);
-    nmplot_summary(nm)
-    //
-    // Plot the contours of the cost function and the simplex history
-    mprintf("Plotting contour (please wait)...\n");
-    xmin = -2.0; 
-    xmax = 2.0 ; 
-    ymin = -1.0 ; 
-    ymax = 2.5 ; 
-    nx = 50 ; 
-    ny = 50;
-    xdata=linspace(xmin,xmax,nx);
-    ydata=linspace(ymin,ymax,ny);
-    scf();
-    drawlater();
-    contour ( xdata , ydata , rosenbrockC , [2 10 100 500 1000 2000] )
-    nmplot_simplexhistory ( nm );
-    drawnow();
-    //
-    // Cleanup
-    deletefile(simplexfn);
-    nm = nmplot_destroy(nm);
-    mprintf("End of demo.\n");
-
-    //
-    // Load this script into the editor
-    //
-    editor ( dname + filename );
-
-endfunction
-
-demo_nmplot_rosenvar()
-clear demo_nmplot_rosenvar;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2008-2009 - INRIA - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2011 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_nmplot_rosenvar()\r
+\r
+    filename = 'nmplot_rosenbrock.sce';\r
+    dname = get_absolute_file_path(filename);\r
+    mprintf("Illustrates the Nelder-Mead algorithm on Rosenbrock test case.\n");\r
+    mprintf("Defining Rosenbrock function...\n");\r
+    function [ y , index ] = rosenbrock ( x , index )\r
+        y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+    function [ y , index ] = rosenbrockC ( x1 , x2 )\r
+        y = rosenbrock ( [x1 , x2] , 2 )\r
+    endfunction\r
+\r
+    mprintf("Creating nmplot object...\n");\r
+    nm = nmplot_new ();\r
+    nm = nmplot_configure(nm,"-numberofvariables",2);\r
+    nm = nmplot_configure(nm,"-function",rosenbrock);\r
+    nm = nmplot_configure(nm,"-x0",[-1.2 1.0]');\r
+    nm = nmplot_configure(nm,"-maxiter",200);\r
+    nm = nmplot_configure(nm,"-maxfunevals",300);\r
+    nm = nmplot_configure(nm,"-tolfunrelative",10*%eps);\r
+    nm = nmplot_configure(nm,"-tolxrelative",10*%eps);\r
+    //\r
+    // Setup output files\r
+    //\r
+    simplexfn = TMPDIR + filesep() + "history.simplex.txt";\r
+    nm = nmplot_configure(nm,"-simplexfn",simplexfn);\r
+    //\r
+    // Perform optimization\r
+    //\r
+    mprintf("Searching (please wait)...\n");\r
+    nm = nmplot_search(nm);\r
+    //\r
+    // Print a summary\r
+    //\r
+    exec(fullfile(dname,"nmplot_summary.sci"),-1);\r
+    nmplot_summary(nm)\r
+    //\r
+    // Plot the contours of the cost function and the simplex history\r
+    mprintf("Plotting contour (please wait)...\n");\r
+    xmin = -2.0; \r
+    xmax = 2.0 ; \r
+    ymin = -1.0 ; \r
+    ymax = 2.5 ; \r
+    nx = 50 ; \r
+    ny = 50;\r
+    xdata=linspace(xmin,xmax,nx);\r
+    ydata=linspace(ymin,ymax,ny);\r
+    scf();\r
+    drawlater();\r
+    contour ( xdata , ydata , rosenbrockC , [2 10 100 500 1000 2000] )\r
+    nmplot_simplexhistory ( nm );\r
+    drawnow();\r
+    demo_viewCode(filename);\r
+    //\r
+    // Cleanup\r
+    deletefile(simplexfn);\r
+    nm = nmplot_destroy(nm);\r
+    mprintf("End of demo.\n");\r
+endfunction\r
+\r
+demo_nmplot_rosenvar()\r
+clear demo_nmplot_rosenvar;\r
+\r
+\r
+\r\r
index 83c37b4..26bb851 100644 (file)
@@ -1,48 +1,58 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_optim_output()
-
-  mprintf(_("Running optimization ...\n"));
-
-  xref = [1;2;3];
-  x0 = [1;-1;1];
-
-  function [f,g,ind] = cost(x,ind)
-    if ( ind == 1 | ind == 4 ) then
-      f = 0.5*norm(x-xref)^2;
-    end
-
-    if ( ind == 1 | ind == 4 ) then
-      g = x - xref;
-    end
-
-    if ( ind == 1 ) then
-      mprintf("===========\n")
-      mprintf("x = %s\n", strcat(string(x)," "))
-      mprintf("f = %e\n", f)
-      g=x-xref;
-      mprintf("g = %s\n", strcat(string(g)," "))
-    end
-
-  endfunction
-
-  [f, xopt] = optim(cost, x0, imp=-1)
-  //
-  // Load this script into the editor
-  //
-  filename = 'optim_output.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename );
-
-endfunction
-
-demo_optim_output()
-clear demo_optim_output;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_optim_output()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    xref = [1;2;3];\r
+    x0 = [1;-1;1];\r
+\r
+    function [f,g,ind] = cost(x,ind)\r
+        if ( ind == 1 | ind == 4 ) then\r
+            f = 0.5*norm(x-xref)^2;\r
+        end\r
+\r
+        if ( ind == 1 | ind == 4 ) then\r
+            g = x - xref;\r
+        end\r
+\r
+        if ( ind == 1 ) then\r
+            mprintf("===========\n")\r
+            mprintf("x = %s\n", strcat(string(x)," "))\r
+            mprintf("f = %e\n", f)\r
+            g=x-xref;\r
+            mprintf("g = %s\n", strcat(string(g)," "))\r
+        end\r
+\r
+    endfunction\r
+\r
+    [f, xopt] = optim(cost, x0, imp=-1)\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'optim_output.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename );\r
+    end\r
+endfunction\r
+\r
+demo_optim_output()\r
+clear demo_optim_output;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 763f7d4..e89d6d1 100644 (file)
@@ -1,40 +1,60 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_rosenbrock()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function [ f , g , ind ] = rosenbrock ( x , ind )
-    f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2;
-    g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )
-    g(2) = 200. * ( x(2) - x(1)**2 )
-  endfunction
-
-  x0 = [-1.2 1];
-  [f, x] = optim(rosenbrock, x0);
-
-  //
-  // Display results
-  //
-  mprintf("x = %s\n", strcat(string(x)," "));
-  mprintf("f = %e\n", f);
-
-  //
-  // Load this script into the editor
-  //
-  filename = 'optim_rosenbrock.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename );
-
-endfunction
-
-demo_rosenbrock();
-clear demo_rosenbrock;
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_rosenbrock()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function [ f , g , ind ] = rosenbrock ( x , ind )\r
+        f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2;\r
+        g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )\r
+        g(2) = 200. * ( x(2) - x(1)**2 )\r
+    endfunction\r
+\r
+    x0 = [-1.2 1];\r
+    [f, x] = optim(rosenbrock, x0);\r
+\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x = %s\n", strcat(string(x)," "));\r
+    mprintf("f = %e\n", f);\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'optim_rosenbrock.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename );\r
+    end\r
+endfunction\r
+\r
+demo_rosenbrock();\r
+clear demo_rosenbrock;\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r\r
index 250e775..2a58958 100644 (file)
@@ -1,51 +1,60 @@
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - DIGITEO - Michael Baudin
-// Copyright (C) 2010 - DIGITEO - Allan CORNET
-//
-// This file must be used under the terms of the CeCILL.
-// This source file is licensed as described in the file COPYING, which
-// you should have received as part of this distribution.  The terms
-// are also available at
-// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
-
-function demo_derivative()
-
-  mprintf(_("Running optimization ...\n"));
-
-  function f = rosenbrock ( x )
-    f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  endfunction
-
-  function [ f , g , ind ] = rosenbrockCost2 ( x , ind )
-
-    if ((ind == 1) | (ind == 4)) then
-      f = rosenbrock ( x );
-    end
-
-    if ((ind == 1) | (ind == 4)) then
-      g = derivative ( rosenbrock , x.' , order = 4 );
-    end
-
-  endfunction
-
-  x0 = [-1.2 1.0];
-  [ f , x ] = optim ( rosenbrockCost2 , x0 );
-
-  //
-  // Display results
-  //
-  mprintf("x = %s\n",strcat(string(x)," "));
-  mprintf("f = %e\n",f);
-
-  //
-  // Load this script into the editor
-  //
-  filename = 'optim_withderivative.sce';
-  dname = get_absolute_file_path(filename);
-  editor ( dname + filename );
-
-endfunction
-
-
-demo_derivative();
-clear demo_derivative;
\ No newline at end of file
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab\r
+// Copyright (C) 2009 - DIGITEO - Michael Baudin\r
+// Copyright (C) 2010 - DIGITEO - Allan CORNET\r
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS\r
+//\r
+// This file must be used under the terms of the CeCILL.\r
+// This source file is licensed as described in the file COPYING, which\r
+// you should have received as part of this distribution.  The terms\r
+// are also available at\r
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt\r
+\r
+function demo_derivative()\r
+\r
+    mprintf(_("Running optimization ...\n"));\r
+\r
+    function f = rosenbrock ( x )\r
+        f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;\r
+    endfunction\r
+\r
+    function [ f , g , ind ] = rosenbrockCost2 ( x , ind )\r
+\r
+        if ((ind == 1) | (ind == 4)) then\r
+            f = rosenbrock ( x );\r
+        end\r
+\r
+        if ((ind == 1) | (ind == 4)) then\r
+            g = derivative ( rosenbrock , x.' , order = 4 );\r
+        end\r
+\r
+    endfunction\r
+\r
+    x0 = [-1.2 1.0];\r
+    [ f , x ] = optim ( rosenbrockCost2 , x0 );\r
+\r
+    //\r
+    // Display results\r
+    //\r
+    mprintf("x = %s\n",strcat(string(x)," "));\r
+    mprintf("f = %e\n",f);\r
+\r
+    //\r
+    // Load this script into the editor\r
+    //\r
+    m = messagebox(_("View Code?"), "Question", "question", _(["Yes" "No"]), "modal")\r
+    if(m == 1)\r
+        filename = 'optim_withderivative.sce';\r
+        dname = get_absolute_file_path(filename);\r
+        editor ( dname + filename );\r
+    end\r
+endfunction\r
+\r
+\r
+demo_derivative();\r
+clear demo_derivative;\r
+\r
+\r
+\r
+\r
+\r
+\r\r