cleanings demos optimization module 40/2240/3
Allan CORNET [Fri, 8 Oct 2010 12:00:34 +0000 (14:00 +0200)]
Change-Id: I0d4f81cfc37a7cbb23325e9936f6d58b63590fb3

62 files changed:
scilab/modules/optimization/demos/datafit/datafit.dem.gateway.sce
scilab/modules/optimization/demos/datafit/datafit.dem.sce
scilab/modules/optimization/demos/datafit/demo_datafit.sci
scilab/modules/optimization/demos/datafit/demo_datafit_fr.htm [deleted file]
scilab/modules/optimization/demos/icse/icse.dem.gateway.sce
scilab/modules/optimization/demos/icse/lqv.sce
scilab/modules/optimization/demos/icse/seros.sce
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/han1-history-simplex.png [deleted file]
scilab/modules/optimization/demos/neldermead/han2-history-simplex.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.fbar.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.restart.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fbar.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fopt.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.sigma.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.simplex.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.restart.png [deleted file]
scilab/modules/optimization/demos/neldermead/mckinnon.history.simplex.png [deleted file]
scilab/modules/optimization/demos/neldermead/neldermead.dem.gateway.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/neldermead/rosenbrock.fixed.history.fbar.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.fopt.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.sigma.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.simplex.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.fbar.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.fbar.txt [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.fopt.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.fopt.txt [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.sigma.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.sigma.txt [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.simplex.png [deleted file]
scilab/modules/optimization/demos/neldermead/rosenbrock.history.simplex.txt [deleted file]
scilab/modules/optimization/demos/optim/optim.dem.gateway.sce
scilab/modules/optimization/demos/optim/optim_output.sce
scilab/modules/optimization/demos/optim/optim_plot.sce
scilab/modules/optimization/demos/optim/optim_rosenbrock.sce
scilab/modules/optimization/demos/optim/optim_withderivative.sce
scilab/modules/optimization/demos/optimization.dem.gateway.sce

index c032a35..b9fc8db 100644 (file)
@@ -1,12 +1,9 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 
-demopath = get_absolute_file_path("datafit.dem.gateway.sce");
-
-subdemolist = ["Non linear data fitting", "datafit.dem.sce"];
-
-subdemolist(:,2) = demopath + subdemolist(:,2)
-clear demopath;
 
+subdemolist = [_("Non linear data fitting"), "datafit.dem.sce"];
+subdemolist(:,2) = SCI + "/modules/optimization/demos/datafit/" + subdemolist(:,2);
index 9200ba1..6820c1a 100644 (file)
@@ -1,10 +1,9 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 
-mode(-1);
-
-path=get_absolute_file_path('datafit.dem.sce');
-exec(path+'demo_datafit.sci');
+exec("SCI/modules/optimization/demos/datafit/demo_datafit.sci');
 demo_datafit();
+clear demo_datafit;
index 78f0fe4..9156d91 100644 (file)
@@ -1,46 +1,51 @@
 //
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ????-2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is distributed under the same license as the Scilab package.
 //
 
 function demo_datafit()
-  //demo_help demo_datafit
-  
-  //create the experimental data
-  X=[];Y=[];
-  a=34;b=12;c=14;
+
+  function y = FF(x)
+    // parametric function model
+    y = a*(x-b)+c*x.*x;
+  endfunction
+
+  function e = G(p, z)
+  // datafit external computes the error
+    a = p(1),
+    b = p(2),
+    c = p(3),
+    y = z(1),
+    x = z(2),
+    e = y - FF(x)
+  endfunction
+
+  // create the experimental data
+  X = [];
+  Y = [];
+  a = 34;
+  b = 12;
+  c = 14;
   for x=0:.1:3, Y=[Y,FF(x)+100*(rand()-.5)];X=[X,x];end
-  Z=[Y;X];
+  Z = [Y; X];
   //show the data points
-  my_handle             = scf(100001);
-  clf(my_handle,"reset");
-  plot(X,Y,'+')
-  l=legend('Experimental data',2)
+  my_handle = scf(100001);
+  clf(my_handle, "reset");
+  demo_viewCode(SCI + "/modules/optimization/demos/datafit/demo_datafit.sci');
+  plot(X, Y, '+');
+  l=legend(_('Experimental data'),2);
   realtimeinit(0.1);for k=1:20,realtime(k),end
   // solve the non linear data fitting
-  [p,err]=datafit(G,Z,[3;5;10])
+  [p,err] = datafit(G,Z,[3;5;10])
   // show the fitting curve
   drawlater()
-  plot(X,FF(X),'r');
-  delete(l)
-  l=legend(['Experimental data';'Fitting function'],2)
-  drawnow()
-  realtimeinit(0.1);for k=1:30,realtime(k),end
-endfunction
+  plot(X,FF(X), 'r');
+  delete(l);
+  l = legend([_('Experimental data'); _('Fitting function')],2);
+  drawnow();
 
-function y=FF(x)
-//parametric function model
-  y=a*(x-b)+c*x.*x,
 endfunction
 
-function e=G(p,z)
-//datafit external computes the error
-  a=p(1),
-  b=p(2),
-  c=p(3),
-  y=z(1),
-  x=z(2),
-  e=y-FF(x)
-endfunction
diff --git a/scilab/modules/optimization/demos/datafit/demo_datafit_fr.htm b/scilab/modules/optimization/demos/datafit/demo_datafit_fr.htm
deleted file mode 100644 (file)
index 015810e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>demo_datafit</title>
-</head>
-<body bgcolor="#FFFFFF">
-<center><h1><font color="blue">Optimisation non linéaire</font></h1></center>
-
-
-<h2>
-
-<center>
-<p>Fonction approximant au mieux des données expérimentales</p>
-<p>f(x)=a*(x-b)+c*x^2</p>
-<p>Trouver a,b,c tels que</p>
-<p>somme( (y(i)-f(x(i)))^2) soit minimale</p>
-<p></p>
-<p></p>
-
-
-<p>par </p>
-<p></p>
-<p></p>
-
-<p>Serge Steer</p>
-<p>INRIA</p>
-
-
-</center>
-</h2>
-
-</body>
-</html>
index ebed09f..93d204d 100644 (file)
@@ -1,15 +1,14 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA
 // Copyright (C) 2010 - DIGITEO - Yann COLLETTE
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 
-demopath = get_absolute_file_path("icse.dem.gateway.sce");
 
-subdemolist = ["LQV",                               "lqv.sce"; ...
-              "Spaceship landing trajectory",      "navet.sce"; ...
-              "Computation of optimal parameters", "seros.sce";];
+subdemolist = [_("LQV"),                               "lqv.sce"; ..
+               _("Spaceship landing trajectory"),      "navet.sce"; ..
+               _("Computation of optimal parameters"), "seros.sce";];
 
-subdemolist(:,2) = demopath + subdemolist(:,2)
-clear demopath;
+subdemolist(:,2) = SCI + "/modules/optimization/demos/icse/" + subdemolist(:,2);
 
index 8778dc3..aa153f3 100644 (file)
@@ -2,6 +2,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ????-2008 - INRIA
 // Copyright (C) 2010 - DIGITEO - Yann COLLETTE
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is distributed under the same license as the Scilab package.
 //
 //                     lqv.bas : demo of icse
 //  *************************************************************
 //
-// YC: link('../../.libs/libscioptimization.so','icse0')
-
-exec('icse.contexte');  // context
-
-t0   = 0;     // instant initial
-tf   = 20;    // instant final
-dti  = 1;     // premier pas de temps
-dtf  = 1;     // second pas de temps
-ermx = 1.d-6; // test d'arret absolu sur la valeur du second membre dans
-              // la resolution de l'etat
-iu = [0,0,1]; //  iu   :indications sur la structure du controle
-              //    iu(1)=1 si l'etat initial depend du controle constant,0 sinon
-              //    iu(2)=1 si l'etat initial depend du controle variable,0 sinon
-              //    iu(3)=1 si le second membre depend du controle constant,0 sinon
-nuc  = 5;     // nombre de parametres independants du temps
-nuv  = 1;     // nombre de parametres dependants du temps
-ilin = 2;     // indicateur de linearite :
-              // 0 pour un systeme non affine
-              // 1 pour un systeme affine dont la partie lineaire n'est pas autonome
-              // ilin=2 pour un systeme affine dont la partie lineaire est autonome
-nti = 10;     // nombre de pas de temps correspondant a dti (premier pas de temps)
-ntf = 10;     // nombre de pas de temps correspondant a dtf (second pas de temps)
-              // si l'on utilise un seul pas de temps,on doit prendre ntf=0
-ny   = 4;     // dimension de l'etat a un instant donne
-nea  = 0;     // nombre d'equations algebriques (eventuellement nul)
-itmx = 10;    // nombre maximal d'iterations dans la resolution de
-              // l'equation d'etat discrete a un pas de temps donne
-nex = 1;      // nombre d'experiences effectuees
-nob = 2;      // dimension du vecteur des mesures pour une experience donnee
-              // en un instant donne
-ntob  = 10;   // nombre d'instants de mesure pour une experience donnee
-ntobi = 5;    // nombre d'instants de mesure correspondant a dti (premier
-              // pas de temps)
-
-nu=nuc+nuv*(nti+ntf+1); // dimension du vecteur des parametres de controle
-
-//  uc(1,nuc)          :controle constant
-uc = 0*ones(1,nuc);
-
-//  uv(1,nuv*(nti+ntf+1)):controle variable
-if nuv>0 then uv(1,nuv*(nti+ntf+1))=0; end;
-
-//  itu(1,nitu)        :tableau de travail entier reserve a
-//                      l'utilisateur
-itu = [0];
-
-//  dtu(1,ndtu)        :tableau de travail double precision reserve
-//                      a l'utilisateur
-dtu = [0];
-
-//  y0(ny)             :etat initial
-//          (valeur arbitraire si iu(1) ou iu(2) est non nul)
-y0 = ones(1,ny);
-
-//  tob(1,ntob)        :instants de mesure (compatibilite avec ntob
-//                      et ntobi)
-tob  = 2*(1:10);
-binf = -10*ones(1,nu); // borne inf des parametres
-bsup =     ones(1,nu); // borne sup des parametres
-
-//  termes utiles pour une dynamique lineaire ou une observation quadratique
-b(1,ny) = 0;                    // terme constant d'une dynamique lineaire
-fy      = 0.1*ones(ny,ny);      // derivee de la dynamique par rapport a l'etat
-fu       =    ones(ny,nuc+nuv); // derivee de la dynamique par rapport au controle
-
-obs(nob,ny) = 0; // matrice d'observation
-obs         = ones(nob,ny);
-
-don=0*ones(1,nex*ntob*nob);
-
-nap   = 20;  // nombre d'appels du simulateur
-imp   = 2;   // niveau de debug pour optim
-large = 100; // taille de nu au dela de laquelle on choisit un optimiseur
+
+  exec('SCI/modules/optimization/demos/icse/icse.contexte');  // context
+
+  t0   = 0;     // instant initial
+  tf   = 20;    // instant final
+  dti  = 1;     // premier pas de temps
+  dtf  = 1;     // second pas de temps
+  ermx = 1.d-6; // test d'arret absolu sur la valeur du second membre dans
+                // la resolution de l'etat
+  iu = [0,0,1]; //  iu   :indications sur la structure du controle
+                //    iu(1)=1 si l'etat initial depend du controle constant,0 sinon
+                //    iu(2)=1 si l'etat initial depend du controle variable,0 sinon
+                //    iu(3)=1 si le second membre depend du controle constant,0 sinon
+  nuc  = 5;     // nombre de parametres independants du temps
+  nuv  = 1;     // nombre de parametres dependants du temps
+  ilin = 2;     // indicateur de linearite :
+                // 0 pour un systeme non affine
+                // 1 pour un systeme affine dont la partie lineaire n'est pas autonome
+                // ilin=2 pour un systeme affine dont la partie lineaire est autonome
+  nti = 10;     // nombre de pas de temps correspondant a dti (premier pas de temps)
+  ntf = 10;     // nombre de pas de temps correspondant a dtf (second pas de temps)
+                // si l'on utilise un seul pas de temps,on doit prendre ntf=0
+  ny   = 4;     // dimension de l'etat a un instant donne
+  nea  = 0;     // nombre d'equations algebriques (eventuellement nul)
+  itmx = 10;    // nombre maximal d'iterations dans la resolution de
+                // l'equation d'etat discrete a un pas de temps donne
+  nex = 1;      // nombre d'experiences effectuees
+  nob = 2;      // dimension du vecteur des mesures pour une experience donnee
+                // en un instant donne
+  ntob  = 10;   // nombre d'instants de mesure pour une experience donnee
+  ntobi = 5;    // nombre d'instants de mesure correspondant a dti (premier
+                // pas de temps)
+
+  nu = nuc + nuv * (nti + ntf + 1); // dimension du vecteur des parametres de controle
+
+  //  uc(1,nuc)          :controle constant
+  uc = 0*ones(1,nuc);
+
+  //  uv(1,nuv*(nti+ntf+1)):controle variable
+  if nuv>0 then uv(1,nuv*(nti+ntf+1))=0; end;
+
+  //  itu(1,nitu)        :tableau de travail entier reserve a
+  //                      l'utilisateur
+  itu = [0];
+
+  //  dtu(1,ndtu)        :tableau de travail double precision reserve
+  //                      a l'utilisateur
+  dtu = [0];
+
+  //  y0(ny)             :etat initial
+  //          (valeur arbitraire si iu(1) ou iu(2) est non nul)
+  y0 = ones(1,ny);
+
+  //  tob(1,ntob)        :instants de mesure (compatibilite avec ntob
+  //                      et ntobi)
+  tob  = 2*(1:10);
+  binf = -10*ones(1,nu); // borne inf des parametres
+  bsup =     ones(1,nu); // borne sup des parametres
+
+  //  termes utiles pour une dynamique lineaire ou une observation quadratique
+  b(1,ny) = 0;                    // terme constant d'une dynamique lineaire
+  fy      = 0.1*ones(ny,ny);      // derivee de la dynamique par rapport a l'etat
+  fu       =    ones(ny,nuc+nuv); // derivee de la dynamique par rapport au controle
+
+  obs(nob,ny) = 0; // matrice d'observation
+  obs         = ones(nob,ny);
+
+  don=0*ones(1,nex*ntob*nob);
+
+  nap   = 20;  // nombre d'appels du simulateur
+  imp   = 2;   // niveau de debug pour optim
+  large = 100; // taille de nu au dela de laquelle on choisit un optimiseur
              // pour les problemes de grande taille (alg='gc' dans l'appel de optim)
 
-exec('icseinit.sce');
+  exec('SCI/modules/optimization/demos/icse/icse.contexte');  // context
+
+  [co,u,g,itv,dtv] = icse(u,'icsemc',nap,imp);
+
+endfunction
 
-[co,u,g,itv,dtv] = icse(u,'icsemc',nap,imp);
index c589799..63436c5 100644 (file)
@@ -10,7 +10,7 @@
 //  calcul coefficients optimaux du modele simplifie 5ht-plaquette
 //  **************************************************************
 
-libn  = ilib_for_link('icsest','icsest.o',[],'f');
+libn  = ilib_for_link('icsest','icsest.f',[],'f');
 nlink = link('./'+libn,'icsest','f');
 
 // contexte : tue les variables de nom reserve
index 8d69853..4d5bb72 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,22 +8,31 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
+function demo_fmin_display()
 
-function y = banana (x)
-  y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
+  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
-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 );
 
+demo_fmin_display();
+clear demo_fmin_display;
index ea83fb1..06f1caf 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,22 +8,31 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
+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" );
 
-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 );
 
+demo_funccount();
+clear demo_funccount;
index f4589ca..98f3819 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,22 +8,32 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
 
-function y = banana (x)
-  y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
+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
-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 );
 
+demo_plotfval();
+clear demo_plotfval;
index fe22473..20b3d82 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,22 +8,32 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
 
-function y = banana (x)
-  y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
+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
-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 );
 
+demo_plotx();
+clear demo_plotx;
index d6d8cc0..6da15d7 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,39 +8,50 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
+function demo_outputfunction()
 
-function y = banana (x)
- y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-endfunction
+  mprintf(_("Running optimization ...\n"));
+
+  function y = banana (x)
+    y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
+  endfunction
+
+  function 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 )
+  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" );
 
-function 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 )
 endfunction
-opt = optimset ( "OutputFcn" , outfun );
-[x fval] = fminsearch ( banana , [-1.2 1] , 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_outputfunction.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
 
+demo_outputfunction();
+clear demo_outputfunction;
index 661a951..ac63392 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,30 +8,41 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
-function y = banana (x)
-  y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
+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
-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 );
 
+demo_fmin_rosenbrock();
+clear demo_fmin_rosenbrock;
index ebd9f5a..f97682e 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,33 +8,44 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
 
-function y = banana (x)
- y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-endfunction
+function demo_fmin_tolx()
 
-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 );
+  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;
diff --git a/scilab/modules/optimization/demos/neldermead/han1-history-simplex.png b/scilab/modules/optimization/demos/neldermead/han1-history-simplex.png
deleted file mode 100644 (file)
index 8cb57aa..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/han1-history-simplex.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/han2-history-simplex.png b/scilab/modules/optimization/demos/neldermead/han2-history-simplex.png
deleted file mode 100644 (file)
index 8273f9a..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/han2-history-simplex.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.fbar.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.fbar.png
deleted file mode 100644 (file)
index 628f3cd..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.fbar.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.png
deleted file mode 100644 (file)
index 9c7985b..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.restart.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.restart.png
deleted file mode 100644 (file)
index 10f0875..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.fopt.restart.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fbar.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fbar.png
deleted file mode 100644 (file)
index 4e06517..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fbar.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fopt.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fopt.png
deleted file mode 100644 (file)
index 2f5c04c..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.fopt.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.sigma.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.sigma.png
deleted file mode 100644 (file)
index 4d9bef4..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.sigma.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.simplex.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.simplex.png
deleted file mode 100644 (file)
index bf38f11..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.restart.simplex.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.png
deleted file mode 100644 (file)
index ac0c058..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.restart.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.restart.png
deleted file mode 100644 (file)
index 09d9c41..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.sigma.restart.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/mckinnon.history.simplex.png b/scilab/modules/optimization/demos/neldermead/mckinnon.history.simplex.png
deleted file mode 100644 (file)
index 2aa80a4..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/mckinnon.history.simplex.png and /dev/null differ
index 9d99f2c..630490e 100644 (file)
@@ -1,34 +1,32 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA
 // Copyright (C) 2010 - DIGITEO - Yann COLLETTE
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 
-demopath = get_absolute_file_path("neldermead.dem.gateway.sce");
+subdemolist = [_("fminsearch - Rosenbrock"),          "fminsearch_rosenbrock.sce"; ...
+               _("fminsearch - tolx"),                "fminsearch_tolx.sce"; ...
+               _("fminsearch - Output Function"),     "fminsearch_outputfunction.sce"; ...
+               _("fminsearch - Option Display"),      "fminsearch_display.sce"; ...
+               _("fminsearch - Plot Func Count"),     "fminsearch_optimplotfunccount.sce"; ...
+               _("fminsearch - Plot F"),              "fminsearch_optimplotfval.sce"; ...
+               _("fminsearch - Plot X"),              "fminsearch_optimplotx.sce"; ...
+               _("neldermead - Rosenbrock Variable"), "neldermead_rosenbrock.sce"; ...
+               _("neldermead - Output Command"),      "neldermead_outputcmd.sce"; ...
+               _("neldermead - Dimensionnality"),     "neldermead_dimension.sce"; ...
+               _("nmplot - Han #1"),                  "nmplot_han1.sce"; ...
+               _("nmplot - Han #2"),                  "nmplot_han2.sce"; ...
+               _("nmplot - McKinnon #1"),             "nmplot_mckinnon.sce"; ...
+               _("nmplot - McKinnon #2"),             "nmplot_mckinnon2.sce"; ...
+               _("nmplot - Quadratic Fixed #1"),      "nmplot_quadratic.fixed.sce"; ...
+               _("nmplot - Quadratic Fixed #2"),      "nmplot_quadratic.fixed2.sce"; ...
+               _("nmplot - Rosenbrock Fixed"),        "nmplot_rosenbrock.fixed.sce"; ...
+               _("nmplot - Rosenbrock Variable"),     "nmplot_rosenbrock.sce"; ...
+               _("neldermead - Box A"),               "neldermead_boxproblemA.sce"; ...
+               _("neldermead - Box B"),               "neldermead_boxproblemB.sce"; ...
+               _("neldermead - Box Bounds"),          "neldermead_boxbounds.sce"; ...
+               _("neldermead - Box Post"),            "neldermead_boxpost.sce"];
 
-subdemolist = ["fminsearch - Rosenbrock",          "fminsearch_rosenbrock.sce"; ...
-           "fminsearch - tolx",                "fminsearch_tolx.sce"; ...
-           "fminsearch - Output Function",     "fminsearch_outputfunction.sce"; ...
-           "fminsearch - Option Display",      "fminsearch_display.sce"; ...
-           "fminsearch - Plot Func Count",     "fminsearch_optimplotfunccount.sce"; ...
-           "fminsearch - Plot F",              "fminsearch_optimplotfval.sce"; ...
-           "fminsearch - Plot X",              "fminsearch_optimplotx.sce"; ...
-           "neldermead - Rosenbrock Variable", "neldermead_rosenbrock.sce"; ...
-           "neldermead - Output Command",      "neldermead_outputcmd.sce"; ...
-               "neldermead - Dimensionnality",     "neldermead_dimension.sce"; ...
-           "nmplot - Han #1",                  "nmplot_han1.sce"; ...
-           "nmplot - Han #2",                  "nmplot_han2.sce"; ...
-           "nmplot - McKinnon #1",             "nmplot_mckinnon.sce"; ...
-           "nmplot - McKinnon #2",             "nmplot_mckinnon2.sce"; ...
-           "nmplot - Quadratic Fixed #1",      "nmplot_quadratic.fixed.sce"; ...
-           "nmplot - Quadratic Fixed #2",      "nmplot_quadratic.fixed2.sce"; ...
-           "nmplot - Rosenbrock Fixed",        "nmplot_rosenbrock.fixed.sce"; ...
-           "nmplot - Rosenbrock Variable",     "nmplot_rosenbrock.sce"; ...
-           "neldermead - Box A",               "neldermead_boxproblemA.sce"; ...
-           "neldermead - Box B",               "neldermead_boxproblemB.sce"; ...
-           "neldermead - Box Bounds",          "neldermead_boxbounds.sce"; ...
-           "neldermead - Box Post",            "neldermead_boxpost.sce"];
-
-subdemolist(:,2) = demopath + subdemolist(:,2)
-clear demopath;
+subdemolist(:,2) = SCI + "/modules/optimization/demos/neldermead/" + subdemolist(:,2);
 
index b803843..562a528 100644 (file)
@@ -1,4 +1,6 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // 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
 //   Show a simple neldermead session with bounds.
 //
 
-mprintf("Illustrates Box'' algorithm on a simply bounds-constrained optimization problem.\n");
+function demo_boxbounds()
 
-// A simple quadratic function
-function [ f , index ] = myquad ( x , index )
-  f = x(1)^2 + x(2)^2
-endfunction
+  mprintf(_("Illustrates Box'' algorithm on a simply bounds-constrained optimization problem.\n"));
 
-//
-// Initialize the random number generator, so that the results are always the
-// same.
-//
-rand("seed" , 0)
+  // A simple quadratic function
+  function [ f , index ] = myquad ( x , index )
+    f = x(1)^2 + x(2)^2
+  endfunction
 
-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 );
+  //
+  // Initialize the random number generator, so that the results are always the
+  // same.
+  //
+  rand("seed" , 0)
 
-xopt = [1 1].';
-// Compute f(xopt) : should be 2
-[ fopt , index ] = myquad ( xopt , 2 );
-mprintf("Computed fopt = %e (expected = %e)\n", fopt , 2 );
+  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 );
 
-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]);
+  xopt = [1 1].';
+  // Compute f(xopt) : should be 2
+  [ fopt , index ] = myquad ( xopt , 2 );
+  mprintf("Computed fopt = %e (expected = %e)\n", fopt , 2 );
 
-//
-// Check that the cost function is correctly connected.
-//
-[ nm , f ] = nmplot_function ( nm , x0 );
-nm = nmplot_configure(nm,"-simplexfn",TMPDIR + "\history.simplex.txt");
-//
-// Perform optimization
-//
-mprintf("Searching (please wait)...\n");
-nm = nmplot_search(nm);
-mprintf("...Done\n");
-nmplot_display(nm);
-mprintf("==========================\n");
-xcomp = nmplot_get(nm,"-xopt");
-mprintf("x computed=%s\n",strcat(string(xcomp)," "));
-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 computed=%f\n",fcomp);
-mprintf("f expected=%f\n",fopt);
-shift = abs(fcomp-fopt)/abs(fopt);
-mprintf("Shift =%f\n",shift);
-//
-// Plot
-//
-mprintf("Plot contour (please wait)...\n");
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = 0.5 , xmax = 2.1 , ymin = 0.5 , ymax = 2.1 , nx = 50 , ny = 50 );
-f = scf(100001);
-xset("fpf"," ")
-drawlater();
-contour ( xdata , ydata , zdata , linspace(min(zdata),max(zdata),10) )
-nmplot_simplexhistory ( nm );
-drawnow();
+  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 );
+  nm = nmplot_configure(nm,"-simplexfn",TMPDIR + "/history.simplex.txt");
+  
+  //
+  // Perform optimization
+  //
+  mprintf(_("Searching (please wait) ...\n"));
+  nm = nmplot_search(nm);
+  mprintf(_("...Done\n"));
+  nmplot_display(nm);
+  mprintf("==========================\n");
+  xcomp = nmplot_get(nm,"-xopt");
+  mprintf("x computed = %s\n",strcat(string(xcomp), " "));
+  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 computed = %f\n",fcomp);
+  mprintf("f expected = %f\n",fopt);
+  shift = abs(fcomp-fopt)/abs(fopt);
+  mprintf("Shift =%f\n",shift);
+  
+  //
+  // Plot
+  //
+  mprintf(_("Plot contour (please wait)...\n"));
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = 0.5 , xmax = 2.1 , ymin = 0.5 , ymax = 2.1 , nx = 50 , ny = 50 );
+  
+  my_handle = scf(100001);
+  clf(my_handle,"reset");
+  xset("fpf"," ")
+  drawlater();
+  contour ( xdata , ydata , zdata , linspace(min(zdata),max(zdata),10) )
+  nmplot_simplexhistory ( nm );
+  drawnow();
 
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  nm = nmplot_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-//
-// Load this script into the editor
-//
-filename = 'neldermead_boxbounds.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+endfunction
 
+demo_boxbounds();
+clear demo_boxbounds;
index e6a7106..a8026e6 100644 (file)
@@ -1,6 +1,7 @@
 // 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
 //   Rosenbrock's Post Office
 //
 
-mprintf("Illustrates Box'' algorithm on Rosenbrock''s Post Office Problem.\n");
-mprintf("Defining Rosenbrock Post Office function...\n");
+function demo_boxpost()
 
-//
-//  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
-//
-//
+  mprintf(_("Illustrates Box'' algorithm on Rosenbrock''s Post Office Problem.\n"));
+  mprintf(_("Defining Rosenbrock Post Office function...\n"));
 
-//
-// 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
+  //
+  //  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
+    end
+  endfunction
 
+  //
+  // Initialize the random number generator, so that the results are always the
+  // same.
+  //
+  rand("seed" , 0)
 
-//
-// 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 );
+  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 );
 
-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 );
 
-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);
+  mprintf("==========================\n");
+  xcomp = neldermead_get(nm,"-xopt");
+  mprintf("x computed = [%s]\n",strcat(string(xcomp)," "));
+  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 computed = %f\n",fcomp);
+  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"));
 
-//
-// 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);
-mprintf("==========================\n");
-xcomp = neldermead_get(nm,"-xopt");
-mprintf("x computed=[%s]\n",strcat(string(xcomp)," "));
-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 computed=%f\n",fcomp);
-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
+  //
+  filename = 'neldermead_boxpost.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
 
-//
-// Load this script into the editor
-//
-filename = 'neldermead_boxpost.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+endfunction
 
+demo_boxpost();
+clear demo_boxpost;
\ No newline at end of file
index dc57345..ee06653 100644 (file)
@@ -1,6 +1,7 @@
 // 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
 //   numerical experiment presented in Box's paper.
 //
 
-mprintf("Illustrates Box'' algorithm on Box problem A.\n");
+function demo_boxproblemA()
 
-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");
+  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 , data ] = boxproblemA ( x , index , data )
-  f = []
-  c = []
-  b = x(2) + 0.01 * x(3)
-  x6 = (data.k1 + data.k2 * x(2) ...
+  //
+  //  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 , data ] = 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) ...
+    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) ...
+    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) ...
+    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) ...
+    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) ...
+    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 ...
+            
+    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
+      f = -f
+    end
+    
+    if ( index == 5 | index == 6 ) then
       c1 = x6
       c2 = 294000 - x6
       c3 = x7
@@ -81,112 +86,119 @@ function [ f , c , index , data ] = boxproblemA ( x , index , data )
       c5 = x8
       c6 = 277200 - x8
       c = [c1 c2 c3 c4 c5 c6]
-  end
-endfunction
+    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;
+  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)
+  //
+  // 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 , data ] = boxproblemA ( x0 , 2 , boxparams );
-mprintf("Computed fx0 = %e (expected = %e)\n",fx0 , -2351244. );
+  x0 = [2.52 2.0 37.5 9.25 6.8].';
+  // Compute f(x0) : should be close to -2351244.0
+  [ fx0 , c , index , data ] = 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 , data ] = boxproblemA ( xopt , 2 , boxparams );
-mprintf("Computed fopt = %e (expected = %e)\n", fopt , -5280334.0 );
+  xopt = [4.53743 2.4 60.0 9.3 7.0].';
+  // Compute f(xopt) : should be -5280334.0
+  [ fopt , c , index , data ] = 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",boxproblemA);
-nm = neldermead_configure(nm,"-costfargument",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");
-mprintf("==========================\n");
-xcomp = neldermead_get(nm,"-xopt");
-mprintf("x computed=[%s]\n",strcat(string(xcomp)," "));
-mprintf("x expected=[%s]\n",strcat(string(xopt)," "));
-shift = norm(xcomp-xopt)/norm(xopt);
-mprintf("Relative error =%e\n",shift);
-fcomp = neldermead_get(nm,"-fopt");
-mprintf("f computed=%f\n",fcomp);
-mprintf("f expected=%f\n",fopt);
-shift = abs(fcomp-fopt)/abs(fopt);
-mprintf("Relative error =%e\n",shift);
-nm = neldermead_destroy(nm);
-mprintf("End of demo.\n");
+  nm = neldermead_new ();
+  nm = neldermead_configure(nm,"-numberofvariables",5);
+  nm = neldermead_configure(nm,"-function",boxproblemA);
+  nm = neldermead_configure(nm,"-costfargument",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"));
+  mprintf("==========================\n");
+  xcomp = neldermead_get(nm,"-xopt");
+  mprintf("x computed = [%s]\n",strcat(string(xcomp)," "));
+  mprintf("x expected = [%s]\n",strcat(string(xopt)," "));
+  shift = norm(xcomp-xopt)/norm(xopt);
+  mprintf(_("Relative error = %e\n"),shift);
+  fcomp = neldermead_get(nm,"-fopt");
+  mprintf("f computed = %f\n",fcomp);
+  mprintf("f expected = %f\n",fopt);
+  shift = abs(fcomp-fopt)/abs(fopt);
+  mprintf("Relative error = %e\n",shift);
+  nm = neldermead_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-//
-// Load this script into the editor
-//
-filename = 'neldermead_boxproblemA.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+  //
+  // Load this script into the editor
+  //
+  filename = 'neldermead_boxproblemA.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
+
+endfunction 
 
+demo_boxproblemA();
+clear demo_boxproblemA;
index 17c5d97..352107a 100644 (file)
@@ -1,6 +1,7 @@
 // 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
 //   numerical experiment presented in Box's paper.
 //
 
-mprintf("Illustrates Box'' algorithm on Box problem B.\n");
+function demo_boxproblemB()
 
-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");
+  mprintf(_("Illustrates Box'' algorithm on Box 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.
+  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"));
 
-//
-// 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
+  //
+  //  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
+    end
+   
+  endfunction
 
 
-//
-// Initialize the random number generator, so that the results are always the
-// same.
-//
-rand("seed" , 0)
+  //
+  // 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 );
+  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 );
+  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 );
+  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);
+  mprintf("==========================\n");
+  xcomp = neldermead_get(nm,"-xopt");
+  mprintf("x computed = [%s]\n", strcat(string(xcomp), " "));
+  mprintf("x expected = [%s]\n", strcat(string(xopt), " "));
+  shift = norm(xcomp-xopt)/norm(xopt);
+  mprintf(_("Relative error = %e\n"), shift);
+  fcomp = neldermead_get(nm,"-fopt");
+  mprintf(_("f computed = %f\n"), fcomp);
+  mprintf(_("f expected = %f\n"), fopt);
+  shift = abs(fcomp-fopt)/abs(fopt);
+  mprintf(_("Relative error = %e\n"), shift);
+  nm = neldermead_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-//
-// 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("==========================\n");
-xcomp = neldermead_get(nm,"-xopt");
-mprintf("x computed=[%s]\n",strcat(string(xcomp)," "));
-mprintf("x expected=[%s]\n",strcat(string(xopt)," "));
-shift = norm(xcomp-xopt)/norm(xopt);
-mprintf("Relative error =%e\n",shift);
-fcomp = neldermead_get(nm,"-fopt");
-mprintf("f computed=%f\n",fcomp);
-mprintf("f expected=%f\n",fopt);
-shift = abs(fcomp-fopt)/abs(fopt);
-mprintf("Relative error =%e\n",shift);
-nm = neldermead_destroy(nm);
-mprintf("End of demo.\n");
+  //
+  // Load this script into the editor
+  //
+  filename = 'neldermead_boxproblemB.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
 
-//
-// Load this script into the editor
-//
-filename = 'neldermead_boxproblemB.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+endfunction
 
+demo_boxproblemB();
+clear demo_boxproblemB;
index d0b9d42..7774a04 100644 (file)
@@ -1,6 +1,7 @@
 // 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
@@ -8,84 +9,94 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-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);
+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
+  
   //
-  // Perform optimization
+  // solvepb --
+  //   Find the solution for the given number of dimensions
   //
-  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
+  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");
+  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;
+  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");
+  // 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
 
-//
-// Load this script into the editor
-//
-filename = 'neldermead_dimension.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
 
+demo_dimension();
+clear demo_dimension;
index 790449d..bbf2679 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -8,63 +9,70 @@
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 
-function [ y , index ] = rosenbrock ( x , index )
-  y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
-endfunction
+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
-//
-function 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);
-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
+  //
+  
+  function 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);
+  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 );
+  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
index e75e739..3d6ae66 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,33 +8,41 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-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 demo_nelder_rosen()
 
-x0 = [-1.2 1.0]';
+  mprintf(_("Defining Rosenbrock function ...\n"));
+  
+  function [ y , index ] = rosenbrock ( x , index )
+    y = 100*(x(2)-x(1)^2)^2+(1-x(1))^2;
+  endfunction
 
-nm = neldermead_new ();
-nm = neldermead_configure(nm,"-numberofvariables",2);
-nm = neldermead_configure(nm,"-function",rosenbrock);
-nm = neldermead_configure(nm,"-x0",x0);
+  x0 = [-1.2 1.0]';
 
-mprintf("Searching (please wait)...\n");
-nm = neldermead_search(nm);
+  nm = neldermead_new();
+  nm = neldermead_configure(nm, "-numberofvariables", 2);
+  nm = neldermead_configure(nm, "-function", rosenbrock);
+  nm = neldermead_configure(nm, "-x0", x0);
 
-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");
+  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
 
-//
-// Load this script into the editor
-//
-filename = 'neldermead_rosenbrock.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
 
+demo_nelder_rosen();
+clear demo_nelder_rosen;
\ No newline at end of file
index 5616023..6782668 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,87 +8,98 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Illustrates the 1st counter example given by Han et al.\n");
+function demo_nmplot_1()
 
-//
-// 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
+  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
 
 
-mprintf("Defining initial simplex coordinates...\n");
-coords0 = [
+  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";
-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);
-nmplot_display(nm);
-//
-// Plot the history of the simplex
-//
-mprintf("Plotting contour (please wait)...\n");
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
-f = scf(100001);
-xset("fpf"," ")
-drawlater();
-contour ( xdata , ydata , zdata , [-5 -4 -2 -1 0 1 1.5] )
-nmplot_simplexhistory ( nm );
-drawnow();
-//
-// Clean-up
-//
-deletefile(simplexfn);
-deletefile(fbarfn);
-deletefile(foptfn);
-deletefile(sigmafn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  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";
+  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);
+  nmplot_display(nm);
+  
+  //
+  // Plot the history of the simplex
+  //
+  mprintf(_("Plotting contour (please wait)...\n"));
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
+  my_handle = scf(100001);
+  clf(my_handle,"reset");
+  drawlater();
+  contour ( xdata , ydata , zdata , [-5 -4 -2 -1 0 1 1.5] )
+  nmplot_simplexhistory ( nm );
+  drawnow();
+  
+  //
+  // Clean-up
+  //
+  deletefile(simplexfn);
+  deletefile(fbarfn);
+  deletefile(foptfn);
+  deletefile(sigmafn);
+  nm = nmplot_destroy(nm);
+  mprintf(_("End of demo.\n"));
+  
+  //
+  // Load this script into the editor
+  //
+  filename = 'nmplot_han1.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_han1.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+endfunction
 
+demo_nmplot_1();
+clear demo_nmplot_1;
index 11afec8..6c6bcd8 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,78 +8,85 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-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 demo_nmplot_2()
+  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
 
 
-coords0 = [
+  coords0 = [
     0.    0.5  
     0.   -0.5  
-    1.    0.   
-]
+    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);
+  nmplot_display(nm);
+  
+  //
+  // Plot
+  //
+  mprintf(_("Plotting contour (please wait) ...\n"));
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -1.5 , ymax = 1.5 , nx = 50 , ny = 50 );
+  f = scf(100001);
+  xset("fpf"," ")
+  drawlater();
+  contour ( xdata , ydata , zdata , [0.1 0.2 0.5 1.0 1.5 1.9] )
+  nmplot_simplexhistory ( nm );
+  drawnow();
+  deletefile(simplexfn);
+  nm = nmplot_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-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);
-nmplot_display(nm);
-//
-// Plot
-//
-mprintf("Plotting contour (please wait)...\n");
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -1.5 , ymax = 1.5 , nx = 50 , ny = 50 );
-f = scf(100001);
-xset("fpf"," ")
-drawlater();
-contour ( xdata , ydata , zdata , [0.1 0.2 0.5 1.0 1.5 1.9] )
-nmplot_simplexhistory ( nm );
-drawnow();
-deletefile(simplexfn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  //
+  // Load this script into the editor
+  //
+  filename = 'nmplot_han2.sce';
+  dname = get_absolute_file_path(filename);
+  editor (dname + filename, 'readonly');
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_han2.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+endfunction
 
+demo_nmplot_2()
+clear demo_nmplot_2;
index c8ede78..313e937 100644 (file)
@@ -1,5 +1,6 @@
 // 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
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
+function demo_mckinnon2()
 
-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
+  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 )
+  function [ f , index ] = mckinnon3 ( x , index )
 
-  if ( length ( x ) ~= 2 )
-    error ( 'Error: function expects a two dimensional input\n' );
-  end
+    if ( length ( x ) ~= 2 )
+      error (_('Error: function expects a two dimensional input\n'));
+    end
 
-  tau = 3.0;
-  theta = 6.0;
-  phi = 400.0;
+    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
+    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
 
 
-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
-];
+  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);
-nmplot_display(nm);
-//
-// Plot
-//
-mprintf("Plot contour (please wait)...\n");
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
-f = scf(100001);
-xset("fpf"," ")
-drawlater();
-contour ( xdata , ydata , zdata , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )
-nmplot_simplexhistory ( nm );
-drawnow();
-f = scf(100002);
-nmplot_historyplot ( nm , fbarfn , mytitle = "Function Value Average" , myxlabel = "Iterations" );
-f = scf(100003);
-nmplot_historyplot ( nm , foptfn , mytitle = "Minimum Function Value" , myxlabel = "Iterations" );
-f = scf(100004);
-nmplot_historyplot ( nm , sigmafn , mytitle = "Maximum Oriented length" , myxlabel = "Iterations" );
-deletefile(simplexfn);
-deletefile(fbarfn);
-deletefile(foptfn);
-deletefile(sigmafn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  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);
+  nmplot_display(nm);
+  //
+  // Plot
+  //
+  mprintf(_("Plot contour (please wait) ...\n"));
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
+  f = scf(100001);
+  xset("fpf"," ")
+  drawlater();
+  contour ( xdata , ydata , zdata , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )
+  nmplot_simplexhistory ( nm );
+  drawnow();
+  f = scf(100002);
+  nmplot_historyplot ( nm , fbarfn , mytitle = "Function Value Average" , myxlabel = "Iterations" );
+  f = scf(100003);
+  nmplot_historyplot ( nm , foptfn , mytitle = "Minimum Function Value" , myxlabel = "Iterations" );
+  f = scf(100004);
+  nmplot_historyplot ( nm , sigmafn , mytitle = "Maximum Oriented length" , myxlabel = "Iterations" );
+  deletefile(simplexfn);
+  deletefile(fbarfn);
+  deletefile(foptfn);
+  deletefile(sigmafn);
+  nm = nmplot_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_mckinnon.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+  //
+  // Load this script into the editor
+  //
+  filename = 'nmplot_mckinnon.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, 'readonly' );
+
+endfunction
 
+demo_mckinnon2()
+clear demo_mckinnon2;
index 59b9f25..101b339 100644 (file)
@@ -1,5 +1,6 @@
 // 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
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 
-mprintf("Defining McKinnon function...\n");
+function demo_mckinnon2()
 
-//% 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
+    mprintf(_("Defining McKinnon function...\n"));
 
-function [ f , index ] = mckinnon3 ( x , index )
+    //% 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
 
-  if ( length ( x ) ~= 2 )
-    error ( 'Error: function expects a two dimensional input\n' );
-  end
+    function [ f , index ] = mckinnon3 ( x , index )
 
-  tau = 3.0;
-  theta = 6.0;
-  phi = 400.0;
+        if ( length ( x ) ~= 2 )
+            error (_('Error: function expects a two dimensional input\n'));
+        end
 
-  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
+        tau = 3.0;
+        theta = 6.0;
+        phi = 400.0;
 
-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
-];
+        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
 
+    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);
-nmplot_display(nm);
-//
-// Plot
-//
-mprintf("Plot contour (please wait)...\n");
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 2.0 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
-f = scf();
-xset("fpf"," ")
-drawlater();
-contour ( xdata , ydata , zdata , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )
-nmplot_simplexhistory ( nm );
-drawnow();
-f = scf();
-nmplot_historyplot ( nm , fbarfn, mytitle = "Function Value Average" , myxlabel = "Iterations" );
-f = scf();
-nmplot_historyplot ( nm , foptfn, mytitle = "Minimum Function Value" , myxlabel = "Iterations" );
-f = scf();
-nmplot_historyplot ( nm , sigmafn, mytitle = "Maximum Oriented length" , myxlabel = "Iterations" );
-deletefile(simplexfn);
-deletefile(fbarfn);
-deletefile(foptfn);
-deletefile(sigmafn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_mckinnon2.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+    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);
+    nmplot_display(nm);
+    
+    //
+    // Plot
+    //
+    mprintf(_("Plot contour (please wait) ...\n"));
+    [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 2.0 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
+    f = scf();
+    xset("fpf"," ")
+    drawlater();
+    contour ( xdata , ydata , zdata , [-0.2 0.0 1.0 2.0 5.0 10.0 20.0] )
+    nmplot_simplexhistory ( nm );
+    drawnow();
+    f = scf();
+    nmplot_historyplot ( nm , fbarfn, mytitle = _("Function Value Average") , myxlabel = _("Iterations") );
+    f = scf();
+    nmplot_historyplot ( nm , foptfn, mytitle = _("Minimum Function Value") , myxlabel = _("Iterations") );
+    f = scf();
+    nmplot_historyplot ( nm , sigmafn, mytitle = _("Maximum Oriented length") , myxlabel = _("Iterations") );
+    deletefile(simplexfn);
+    deletefile(fbarfn);
+    deletefile(foptfn);
+    deletefile(sigmafn);
+    nm = nmplot_destroy(nm);
+    mprintf(_("End of demo.\n"));
+
+    //
+    // Load this script into the editor
+    //
+    filename = 'nmplot_mckinnon2.sce';
+    dname = get_absolute_file_path(filename);
+    editor ( dname + filename, "readonly" );
+
+endfunction
+
+demo_mckinnon2();
+clear demo_mckinnon2
 
index 61b94dc..5b3fd31 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,83 +8,94 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
+function demo_nmplot_qfixed()
 
-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
+  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
 
-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";
-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);
-nmplot_display(nm);
-// Plot various histories
-mprintf("Plotting history of fbar...\n");
-f = scf();
-nmplot_historyplot ( nm , fbarfn, mytitle = "Function Value Average" , myxlabel = "Iterations" );
-mprintf("Plotting history of fopt...\n");
-f = scf();
-nmplot_historyplot ( nm , foptfn, mytitle = "Logarithm Minimum Function Value" , myxlabel = "Iterations" );
-f.children.log_flags = "nln";
-newticks = tlist(["ticks","locations","labels"]);
-newticks.labels = ["1.e-20" "1.e-10" "1.e-1"];
-newticks.locations = [1.e-20 1.e-10 1.e-1];
-f.children.y_ticks = newticks;
-f.children.children(1).children.mark_mode = "on";
-f.children.children(1).children.mark_style = 9;
-mprintf("Plotting history of sigma...\n");
-f = scf();
-nmplot_historyplot ( nm , sigmafn, mytitle = "Logarithm Maximum Oriented length" , myxlabel = "Iterations" );
-f.children.log_flags = "nln";
-f.children.y_ticks = newticks;
-f.children.children(1).children.mark_mode = "on";
-f.children.children(1).children.mark_style = 9;
-// Plot the contours of the cost function and the simplex history
-mprintf("Plotting contour (please wait)...\n");
-nm = nmplot_configure(nm,"-verbose",0);
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -2.0 , xmax = 4.0 , ymin = -2.0 , ymax = 4.0 , nx = 50 , ny = 50 );
-f = scf();
-drawlater();
-contour ( xdata , ydata , zdata , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )
-nmplot_simplexhistory ( nm );
-drawnow();
-// Clean-up
-deletefile(simplexfn);
-deletefile(fbarfn);
-deletefile(foptfn);
-deletefile(sigmafn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  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";
+  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);
+  nmplot_display(nm);
+  // Plot various histories
+  mprintf(_("Plotting history of fbar ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , fbarfn, mytitle = _("Function Value Average") , myxlabel = _("Iterations") );
+  mprintf( _("Plotting history of fopt ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , foptfn, mytitle = _("Logarithm Minimum Function Value") , myxlabel = _("Iterations") );
+  f.children.log_flags = "nln";
+  newticks = tlist(["ticks","locations","labels"]);
+  newticks.labels = ["1.e-20" "1.e-10" "1.e-1"];
+  newticks.locations = [1.e-20 1.e-10 1.e-1];
+  f.children.y_ticks = newticks;
+  f.children.children(1).children.mark_mode = "on";
+  f.children.children(1).children.mark_style = 9;
+  mprintf(_("Plotting history of sigma ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , sigmafn, mytitle = _("Logarithm Maximum Oriented length") , myxlabel = _("Iterations") );
+  f.children.log_flags = "nln";
+  f.children.y_ticks = newticks;
+  f.children.children(1).children.mark_mode = "on";
+  f.children.children(1).children.mark_style = 9;
+  
+  // Plot the contours of the cost function and the simplex history
+  mprintf(_("Plotting contour (please wait) ...\n"));
+  nm = nmplot_configure(nm, "-verbose",0);
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -2.0 , xmax = 4.0 , ymin = -2.0 , ymax = 4.0 , nx = 50 , ny = 50 );
+  f = scf();
+  drawlater();
+  contour ( xdata , ydata , zdata , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )
+  nmplot_simplexhistory ( nm );
+  drawnow();
+  
+  // Clean-up
+  deletefile(simplexfn);
+  deletefile(fbarfn);
+  deletefile(foptfn);
+  deletefile(sigmafn);
+  nm = nmplot_destroy(nm);
+  mprintf("End of demo.\n");
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_quadratic.fixed.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+  //
+  // Load this script into the editor
+  //
+  filename = 'nmplot_quadratic.fixed.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
+
+endfunction 
 
+demo_nmplot_qfixed();
+clear demo_nmplot_qfixed;
index fa0be24..04d7988 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,84 +8,95 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
+function demo_nmplot_qfixed2()
+
+  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
+
+  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";
+  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);
+  nmplot_display(nm);
+  // Plot various histories
+  mprintf(_("Plotting history of fbar ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm ,fbarfn, mytitle = _("Function Value Average") , myxlabel = _("Iterations") );
+  mprintf(_("Plotting history of fopt ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , foptfn, mytitle = _("Logarithm Minimum Function Value") , myxlabel = _("Iterations") );
+  f.children.log_flags = "nln";
+  newticks = tlist(["ticks","locations","labels"]);
+  newticks.labels = ["1.e-20" "1.e-10" "1.e-1"];
+  newticks.locations = [1.e-20 1.e-10 1.e-1];
+  f.children.y_ticks = newticks;
+  f.children.children(1).children.mark_mode = "on";
+  f.children.children(1).children.mark_style = 9;
+  mprintf(_("Plotting history of sigma ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , sigmafn, mytitle = _("Logarithm Maximum Oriented length") , myxlabel = _("Iterations") );
+  f.children.log_flags = "nln";
+  f.children.y_ticks = newticks;
+  f.children.children(1).children.mark_mode = "on";
+  f.children.children(1).children.mark_style = 9;
+  // Plot the contours of the cost function and the simplex history
+  mprintf(_("Plotting contour (please wait) ...\n"));
+  nm = nmplot_configure(nm, "-verbose", 0);
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -5.0 , xmax = 12.0 , ymin = -2.0 , ymax = 12.0 , nx = 50 , ny = 50 );
+  f = scf();
+  drawlater();
+  contour ( xdata , ydata , zdata , [10.0 50 100 1000 2000 5000 10000 20000] )
+  nmplot_simplexhistory ( nm );
+  drawnow();
+  
+  // Clean-up
+  deletefile(simplexfn);
+  deletefile(fbarfn);
+  deletefile(foptfn);
+  deletefile(sigmafn);
+  nm = nmplot_destroy(nm);
+  mprintf("End of demo.\n");
+
+  //
+  // Load this script into the editor
+  //
+  filename = 'nmplot_quadratic.fixed2.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
 
-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
 
-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";
-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);
-nmplot_display(nm);
-// Plot various histories
-mprintf("Plotting history of fbar...\n");
-f = scf();
-nmplot_historyplot ( nm ,fbarfn, mytitle = "Function Value Average" , myxlabel = "Iterations" );
-mprintf("Plotting history of fopt...\n");
-f = scf();
-nmplot_historyplot ( nm , foptfn, mytitle = "Logarithm Minimum Function Value" , myxlabel = "Iterations" );
-f.children.log_flags = "nln";
-newticks = tlist(["ticks","locations","labels"]);
-newticks.labels = ["1.e-20" "1.e-10" "1.e-1"];
-newticks.locations = [1.e-20 1.e-10 1.e-1];
-f.children.y_ticks = newticks;
-f.children.children(1).children.mark_mode = "on";
-f.children.children(1).children.mark_style = 9;
-mprintf("Plotting history of sigma...\n");
-f = scf();
-nmplot_historyplot ( nm , sigmafn, mytitle = "Logarithm Maximum Oriented length" , myxlabel = "Iterations" );
-f.children.log_flags = "nln";
-f.children.y_ticks = newticks;
-f.children.children(1).children.mark_mode = "on";
-f.children.children(1).children.mark_style = 9;
-// Plot the contours of the cost function and the simplex history
-mprintf("Plotting contour (please wait)...\n");
-nm = nmplot_configure(nm,"-verbose",0);
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -5.0 , xmax = 12.0 , ymin = -2.0 , ymax = 12.0 , nx = 50 , ny = 50 );
-f = scf();
-drawlater();
-contour ( xdata , ydata , zdata , [10.0 50 100 1000 2000 5000 10000 20000] )
-nmplot_simplexhistory ( nm );
-drawnow();
-// Clean-up
-deletefile(simplexfn);
-deletefile(fbarfn);
-deletefile(foptfn);
-deletefile(sigmafn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+demo_nmplot_qfixed2();
+clear demo_nmplot_qfixed2;
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_quadratic.fixed2.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
 
index 39cd9b7..e9f0e10 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,82 +8,91 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
+function demo_nmplot_qvariable()
 
-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
+  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
 
-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";
-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);
-nmplot_display(nm);
-// Plot various histories
-mprintf("Plotting history of fbar...\n");
-f = scf();
-nmplot_historyplot ( nm , fbarfn, mytitle = "Function Value Average" , myxlabel = "Iterations" );
-mprintf("Plotting history of fopt...\n");
-f = scf();
-nmplot_historyplot ( nm , foptfn, mytitle = "Logarithm Minimum Function Value" , myxlabel = "Iterations" );
-f.children.log_flags = "nln";
-newticks = tlist(["ticks","locations","labels"]);
-newticks.labels = ["1.e-20" "1.e-10" "1.e-1"];
-newticks.locations = [1.e-20 1.e-10 1.e-1];
-f.children.y_ticks = newticks;
-f.children.children(1).children.mark_mode = "on";
-f.children.children(1).children.mark_style = 9;
-mprintf("Plotting history of sigma...\n");
-f = scf();
-nmplot_historyplot ( nm , sigmafn, mytitle = "Logarithm Maximum Oriented length" , myxlabel = "Iterations" );
-f.children.log_flags = "nln";
-f.children.y_ticks = newticks;
-f.children.children(1).children.mark_mode = "on";
-f.children.children(1).children.mark_style = 9;
-// Plot the contours of the cost function and the simplex history
-mprintf("Plotting contour (please wait)...\n");
-nm = nmplot_configure(nm,"-verbose",0);
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -2.0 , xmax = 4.0 , ymin = -2.0 , ymax = 4.0 , nx = 50 , ny = 50 );
-f = scf();
-drawlater();
-contour ( xdata , ydata , zdata , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )
-nmplot_simplexhistory ( nm );
-drawnow();
-// Clean-up
-deletefile(simplexfn);
-deletefile(fbarfn);
-deletefile(foptfn);
-deletefile(sigmafn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  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";
+  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);
+  nmplot_display(nm);
+  // Plot various histories
+  mprintf(_("Plotting history of fbar ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , fbarfn, mytitle = _("Function Value Average") , myxlabel = _("Iterations") );
+  mprintf(_("Plotting history of fopt ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , foptfn, mytitle = _("Logarithm Minimum Function Value") , myxlabel = _("Iterations") );
+  f.children.log_flags = "nln";
+  newticks = tlist(["ticks","locations","labels"]);
+  newticks.labels = ["1.e-20" "1.e-10" "1.e-1"];
+  newticks.locations = [1.e-20 1.e-10 1.e-1];
+  f.children.y_ticks = newticks;
+  f.children.children(1).children.mark_mode = "on";
+  f.children.children(1).children.mark_style = 9;
+  mprintf(_("Plotting history of sigma ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , sigmafn, mytitle = _("Logarithm Maximum Oriented length") , myxlabel = _("Iterations") );
+  f.children.log_flags = "nln";
+  f.children.y_ticks = newticks;
+  f.children.children(1).children.mark_mode = "on";
+  f.children.children(1).children.mark_style = 9;
+  // Plot the contours of the cost function and the simplex history
+  mprintf(_("Plotting contour (please wait) ...\n"));
+  nm = nmplot_configure(nm, "-verbose", 0);
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -2.0 , xmax = 4.0 , ymin = -2.0 , ymax = 4.0 , nx = 50 , ny = 50 );
+  f = scf();
+  drawlater();
+  contour ( xdata , ydata , zdata , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )
+  nmplot_simplexhistory ( nm );
+  drawnow();
+  
+  // Clean-up
+  deletefile(simplexfn);
+  deletefile(fbarfn);
+  deletefile(foptfn);
+  deletefile(sigmafn);
+  nm = nmplot_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_quadratic.variable.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+  //
+  // Load this script into the editor
+  //
+  filename = 'nmplot_quadratic.variable.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
+
+endfunction
+
+demo_nmplot_qvariable();
+clear demo_nmplot_qvariable;
 
index 394d1f3..a5773ec 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,37 +8,43 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
+function demo_nmplot_qvariable2()
 
-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
+  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
 
-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");
-//
-// Perform optimization
-//
-mprintf("Searching (please wait)...\n");
-nm = nmplot_search(nm);
-nmplot_display(nm);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  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");
+  
+  //
+  // Perform optimization
+  //
+  mprintf(_("Searching (please wait) ...\n"));
+  nm = nmplot_search(nm);
+  nmplot_display(nm);
+  nm = nmplot_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_quadratic.variable2.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+  //
+  // Load this script into the editor
+  //
+  filename = 'nmplot_quadratic.variable2.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
+
+endfunction
 
+demo_nmplot_qvariable2();
+clear demo_nmplot_qvariable2;
index 5a4a6b6..7450ea1 100644 (file)
@@ -1,5 +1,6 @@
 // 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
@@ -7,68 +8,78 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
+function demo_nmplot_rosen()
 
-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
+  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
 
-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";
-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);
-nmplot_display(nm);
-// Plot the contours of the cost function and the simplex history
-mprintf("Plotting contour (please wait)...\n");
-[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -2.0 , xmax = 2.0 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
-f = scf();
-drawlater();
-contour ( xdata , ydata , zdata , [2 10 100 500 1000 2000] )
-nmplot_simplexhistory ( nm );
-drawnow();
-mprintf("Plotting history of fbar...\n");
-f = scf();
-nmplot_historyplot ( nm , fbarfn, mytitle = "Function Value Average" , myxlabel = "Iterations" );
-mprintf("Plotting history of fopt...\n");
-f = scf();
-nmplot_historyplot ( nm , foptfn, mytitle = "Minimum Function Value" , myxlabel = "Iterations" );
-mprintf("Plotting history of sigma...\n");
-f = scf();
-nmplot_historyplot ( nm , sigmafn, mytitle = "Maximum Oriented length" , myxlabel = "Iterations" );
-deletefile(simplexfn);
-deletefile(fbarfn);
-deletefile(foptfn);
-deletefile(sigmafn);
-nm = nmplot_destroy(nm);
-mprintf("End of demo.\n");
+  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";
+  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);
+  nmplot_display(nm);
+  
+  // Plot the contours of the cost function and the simplex history
+  mprintf(_("Plotting contour (please wait) ...\n"));
+  [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -2.0 , xmax = 2.0 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
+  f = scf();
+  drawlater();
+  contour ( xdata , ydata , zdata , [2 10 100 500 1000 2000] )
+  nmplot_simplexhistory ( nm );
+  drawnow();
+  mprintf(_("Plotting history of fbar ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , fbarfn, mytitle = _("Function Value Average") , myxlabel = _("Iterations") );
+  mprintf(_("Plotting history of fopt ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , foptfn, mytitle = _("Minimum Function Value") , myxlabel = _("Iterations") );
+  mprintf(_("Plotting history of sigma ...\n"));
+  f = scf();
+  nmplot_historyplot ( nm , sigmafn, mytitle = _("Maximum Oriented length") , myxlabel = _("Iterations") );
+  deletefile(simplexfn);
+  deletefile(fbarfn);
+  deletefile(foptfn);
+  deletefile(sigmafn);
+  nm = nmplot_destroy(nm);
+  mprintf(_("End of demo.\n"));
 
-//
-// Load this script into the editor
-//
-filename = 'nmplot_rosenbrock.fixed.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+  //
+  // Load this script into the editor
+  //
+  
+  filename = 'nmplot_rosenbrock.fixed.sce';
+  dname = get_absolute_file_path(filename);
+  editor ( dname + filename, "readonly" );
+
+endfunction
 
+demo_nmplot_rosen()
+clear demo_nmplot_rosen;
index 693f773..740bace 100644 (file)
@@ -1,5 +1,6 @@
 // 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
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.fbar.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.fbar.png
deleted file mode 100644 (file)
index 62880f5..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.fbar.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.fopt.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.fopt.png
deleted file mode 100644 (file)
index 0f957bf..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.fopt.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.sigma.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.sigma.png
deleted file mode 100644 (file)
index 03bce98..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.sigma.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.simplex.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.simplex.png
deleted file mode 100644 (file)
index 1686ab0..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.fixed.history.simplex.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fbar.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fbar.png
deleted file mode 100644 (file)
index 0a5470f..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fbar.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fbar.txt b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fbar.txt
deleted file mode 100644 (file)
index 71e5b88..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-//
-// rosenbrock.history.fbar.txt--
-//   History of the function value average during Nelder-Mead algorithm.
-//
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-//
-history = [
-0 3.784675e+000
-1 3.784675e+000
-2 1.994637e+000
-2 1.994637e+000
-]
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fopt.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fopt.png
deleted file mode 100644 (file)
index 2fb0137..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fopt.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fopt.txt b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.fopt.txt
deleted file mode 100644 (file)
index cd6563c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-//
-// rosenbrock.history.fopt.txt--
-//   History of the function value optimum during Nelder-Mead algorithm.
-//
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-//
-history = [
-0 8.000000e+000
-1 8.000000e+000
-2 8.000000e+000
-2 8.000000e+000
-]
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.sigma.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.sigma.png
deleted file mode 100644 (file)
index acb6d81..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.sigma.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.sigma.txt b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.sigma.txt
deleted file mode 100644 (file)
index 0649bef..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-//
-// rosenbrock.history.sigma.txt--
-//   History of the maximum of oriented length during Nelder-Mead algorithm.
-//
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-//
-history = [
-0 1.414214e+000
-1 1.414214e+000
-2 1.030776e+000
-2 1.030776e+000
-]
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.simplex.png b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.simplex.png
deleted file mode 100644 (file)
index 4f22998..0000000
Binary files a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.simplex.png and /dev/null differ
diff --git a/scilab/modules/optimization/demos/neldermead/rosenbrock.history.simplex.txt b/scilab/modules/optimization/demos/neldermead/rosenbrock.history.simplex.txt
deleted file mode 100644 (file)
index 8c4de6e..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-//
-// rosenbrock.history.simplex.txt--
-//   History of the simplex during Nelder-Mead algorithm.
-//
-// Copyright (C) 2008-2009 - INRIA - Michael Baudin
-//
-history = list()
-// Iteration #0
-history($+1) = [
-// Vertex #1
-0.000000e+000 0.000000e+000 
-// Vertex #2
-8.430703e-001 -5.930703e-001 
-// Vertex #3
-1.000000e+000 1.000000e+000 
-]
-// Iteration #1
-history($+1) = [
-// Vertex #1
-0.000000e+000 0.000000e+000 
-// Vertex #2
-8.430703e-001 -5.930703e-001 
-// Vertex #3
-1.000000e+000 1.000000e+000 
-]
-// Iteration #2
-history($+1) = [
-// Vertex #1
-0.000000e+000 0.000000e+000 
-// Vertex #2
-7.107676e-001 3.517324e-001 
-// Vertex #3
-8.430703e-001 -5.930703e-001 
-]
-// Iteration #2
-history($+1) = [
-// Vertex #1
-0.000000e+000 0.000000e+000 
-// Vertex #2
-7.107676e-001 3.517324e-001 
-// Vertex #3
-8.430703e-001 -5.930703e-001 
-]
index f8345a2..e997ff3 100644 (file)
@@ -1,15 +1,14 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 
-demopath = get_absolute_file_path("optim.dem.gateway.sce");
+subdemolist = [_("Rosenbrock"), "optim_rosenbrock.sce"; ...
+               _("Output"),     "optim_output.sce"; ...
+               _("Plot"),       "optim_plot.sce"; ...
+               _("Derivative"), "optim_withderivative.sce"];
 
-subdemolist = ["Rosenbrock", "optim_rosenbrock.sce"; ...
-              "Output",     "optim_output.sce"; ...
-              "Plot",       "optim_plot.sce"; ...
-              "Derivative", "optim_withderivative.sce"];
+subdemolist(:,2) = SCI + "/modules/optimization/demos/optim/"+ subdemolist(:,2);
 
-subdemolist(:,2) = demopath + subdemolist(:,2)
-clear demopath;
 
index 929d4f8..83c37b4 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,34 +8,41 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
+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 );
 
-xref=[1;2;3];
-x0=[1;-1;1];
-function [f,g,ind] = cost(x,ind)
-  f=0.5*norm(x-xref)^2;
-  g=x-xref;
-endfunction
-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 );
 
+demo_optim_output()
+clear demo_optim_output;
index 07baab6..f5c9c1f 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009-2010 - Digiteo - 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
@@ -7,49 +8,56 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
+function demo_optim_plot()
 
-//
-// 1. Define rosenbrock for contouring
-function f = rosenbrockC ( x1 , x2 )
-  x = [x1 x2];
-  f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
-endfunction
-x0 = [-1.2 1.0];
-xopt = [1.0 1.0];
-//
-// 2. Draw the contour of Rosenbrock's function
-xdata = linspace(-2,2,100);
-ydata = linspace(-2,2,100);
-mprintf("Draw contours...\n");
-scf();
-contour ( xdata , ydata , rosenbrockC , [1 10 100 500 1000])
-plot(x0(1) , x0(2) , "b.")
-plot(xopt(1) , xopt(2) , "r*")
-//
-// 3. Define Rosenbrock for optimization
-function [ f , g , ind ] = rosenbrock ( x , ind )
-  if ((ind == 1) | (ind == 4)) then
+  mprintf(_("Running optimization ...\n"));
+
+  //
+  // 1. Define rosenbrock for contouring
+  function f = rosenbrockC ( x1 , x2 )
+    x = [x1 x2];
     f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  end
-  if ((ind == 1) | (ind == 4)) then
-    g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )
-    g(2) = 200. * ( x(2) - x(1)**2 )
-  end
-  if (ind == 1) then
-    plot ( x(1) , x(2) , "g." )
-  end
-endfunction
-//
-// 4. Plot the optimization process, during optimization
-mprintf("Plot points during optimization...\n");
-[ fopt , xopt ] = optim ( rosenbrock , x0 , imp = -1)
+  endfunction
 
+  x0 = [-1.2 1.0];
+  xopt = [1.0 1.0];
 
-//
-// Load this script into the editor
-//
-filename = 'optim_plot.sce';
-dname = get_absolute_file_path(filename);
-editor ( dname + filename );
+  //
+  // 2. Draw the contour of Rosenbrock's function
+  xdata = linspace(-2,2,100);
+  ydata = linspace(-2,2,100);
+  mprintf("Draw contours...\n");
+  my_handle = scf(100001);
+  clf(my_handle,"reset");
+  demo_viewCode('optim_plot.sce');
+  contour ( xdata , ydata , rosenbrockC , [1 10 100 500 1000])
+  plot(x0(1) , x0(2) , "b.")
+  plot(xopt(1) , xopt(2) , "r*")
+
+  //
+  // 3. Define Rosenbrock for optimization
+  function [ f , g , ind ] = rosenbrock ( x , ind )
+    if ((ind == 1) | (ind == 4)) then
+      f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
+    end
+
+    if ((ind == 1) | (ind == 4)) then
+      g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )
+      g(2) = 200. * ( x(2) - x(1)**2 )
+    end
+
+    if (ind == 1) then
+      plot ( x(1) , x(2) , "g." )
+    end
+  endfunction
+
+  //
+  // 4. Plot the optimization process, during optimization
+  mprintf("Plot points during optimization...\n");
+  [ fopt , xopt ] = optim ( rosenbrock , x0 , imp = -1)
+
+endfunction
+
+demo_optim_plot();
+clear demo_optim_plot;
 
index 08bba88..763f7d4 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,24 +8,33 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
+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 );
 
-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 );
 
+demo_rosenbrock();
+clear demo_rosenbrock;
index c379c73..250e775 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2009 - Digiteo - Michael Baudin
+// 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
@@ -7,30 +8,44 @@
 // are also available at
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
-mprintf("Running optimization...\n");
+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 );
 
-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 );
 
+
+demo_derivative();
+clear demo_derivative;
\ No newline at end of file
index 1eef1f6..7c26a66 100644 (file)
@@ -1,22 +1,21 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2008 - INRIA
+// Copyright (C) 2010 - DIGITEO - Allan CORNET
 //
 // This file is released under the 3-clause BSD license. See COPYING-BSD.
 
-demopath = get_absolute_file_path("optimization.dem.gateway.sce");
-subdemolist = ["Non linear data fitting", "datafit/datafit.dem.gateway.sce"; ...
-              "Optimisation",            "optim/optim.dem.gateway.sce"; ...
-              "fminsearch",              "neldermead/neldermead.dem.gateway.sce"];
+subdemolist = [_("Non linear data fitting"), "datafit/datafit.dem.gateway.sce"; ..
+               _("Optimisation"),            "optim/optim.dem.gateway.sce"; ..
+               _("fminsearch"),              "neldermead/neldermead.dem.gateway.sce"];
 
 if with_module('genetic_algorithms') then
-  subdemolist = [subdemolist; ...
-                 "Genetic algorithms", "../../genetic_algorithms/demos/genetic_algorithms.dem.gateway.sce"];
-end 
+  subdemolist = [subdemolist; ..
+                 _("Genetic algorithms"), "../../genetic_algorithms/demos/genetic_algorithms.dem.gateway.sce"];
+end
 
 if with_module('simulated_annealing') then
-  subdemolist = [subdemolist; ...
-                 "Simulated Annealing", "../../simulated_annealing/demos/simulated_annealing.dem.gateway.sce"];
+  subdemolist = [subdemolist; ..
+                 _("Simulated Annealing"), "../../simulated_annealing/demos/simulated_annealing.dem.gateway.sce"];
 end
 
-subdemolist(:,2) = demopath + subdemolist(:,2)
-clear demopath;
\ No newline at end of file
+subdemolist(:,2) = SCI + "/modules/optimization/demos/"+ subdemolist(:,2);