Renamed mtlb_fminsearch into fminsearch. Added demos.
[scilab.git] / scilab / modules / optimization / demos / neldermead / nmplot_han1.sce
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008-2009 - INRIA - Michael Baudin
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9
10
11 //
12 // han1 --
13 //   Compute the cost function from the Han Phd Thesis
14 //   which exhibits a failure of the NM method.
15 // Reference 
16 //   Algorithms in Unconstrained Optimization
17 //   Han, Lixing
18 //   2000
19 //   Ph.D., The University of Connecticut
20 //
21 function f = han1 ( x )
22   f = x(1)^2 + x(2) * (x(2) + 2.0) * (x(2) - 0.5) * (x(2) - 2.0);
23 endfunction
24
25
26 coords0 = [
27 0.0 0.0 1.0
28 -1.0 1.0 0.0
29 ]
30
31
32 nm = nmplot_new ();
33 nm = nmplot_configure(nm,"-numberofvariables",2);
34 nm = nmplot_configure(nm,"-function",han1);
35 nm = nmplot_configure(nm,"-x0",[1.0 1.0]');
36 nm = nmplot_configure(nm,"-maxiter",50);
37 nm = nmplot_configure(nm,"-maxfunevals",300);
38 nm = nmplot_configure(nm,"-tolfunrelative",10*%eps);
39 nm = nmplot_configure(nm,"-tolxrelative",10*%eps);
40 nm = nmplot_configure(nm,"-simplex0method","given");
41 nm = nmplot_configure(nm,"-coords0",coords0);
42 nm = nmplot_configure(nm,"-simplex0length",1.0);
43 nm = nmplot_configure(nm,"-method","variable");
44 //nm = nmplot_configure(nm,"-verbose",1);
45 nm = nmplot_configure(nm,"-verbosetermination",1);
46 //
47 // Setup output files
48 //
49 nm = nmplot_configure(nm,"-simplexfn","han1-history-simplex.txt");
50 nm = nmplot_configure(nm,"-fbarfn","han1-history-fbar.txt");
51 nm = nmplot_configure(nm,"-foptfn","han1-history-fopt.txt");
52 nm = nmplot_configure(nm,"-sigmafn","han1-history-sigma.txt");
53 //
54 // Perform optimization
55 //
56 nm = nmplot_search(nm);
57 //
58 // Plot
59 //
60 [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -2.0 , ymax = 2.0 , nx = 50 , ny = 50 );
61 //[nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -0.2 , xmax = 1.2 , ymin = -1.2 , ymax = 1.2 , nx = 50 , ny = 50 );
62 f = scf();
63 xset("fpf"," ")
64 contour ( xdata , ydata , zdata , 40 )
65 nmplot_simplexhistory ( nm );
66 xs2png(0,"han1-history-simplex.png");
67 deletefile("han1-history-simplex.txt");
68 deletefile("han1-history-fbar.txt");
69 deletefile("han1-history-fopt.txt");
70 deletefile("han1-history-sigma.txt");
71 nm = nmplot_destroy(nm);
72
73