c7893bf78a6e977ae934d64dd50eda74bf76ed08
[scilab.git] / scilab / modules / optimization / demos / neldermead / nmplot_quadratic.fixed.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 mprintf("Defining quadratic function...\n");
12 function y = quadratic (x)
13   y = x(1)^2 + x(2)^2 - x(1) * x(2);
14 endfunction
15
16 mprintf("Creating nmplot object...\n");
17 nm = nmplot_new ();
18 nm = nmplot_configure(nm,"-numberofvariables",2);
19 nm = nmplot_configure(nm,"-function",quadratic);
20 nm = nmplot_configure(nm,"-x0",[2.0 2.0]');
21 nm = nmplot_configure(nm,"-maxiter",100);
22 nm = nmplot_configure(nm,"-maxfunevals",300);
23 //nm = nmplot_configure(nm,"-tolfunrelative",10*%eps);
24 nm = nmplot_configure(nm,"-tolxrelative",1.e-8);
25 nm = nmplot_configure(nm,"-simplex0method","spendley");
26 //nm = nmplot_configure(nm,"-simplex0length",1.0);
27 nm = nmplot_configure(nm,"-method","fixed");
28 //nm = nmplot_configure(nm,"-verbose",1);
29 nm = nmplot_configure(nm,"-verbosetermination",0);
30 //
31 // Setup output files
32 //
33 nm = nmplot_configure(nm,"-simplexfn","rosenbrock.fixed.history.simplex.txt");
34 nm = nmplot_configure(nm,"-fbarfn","rosenbrock.fixed.history.fbar.txt");
35 nm = nmplot_configure(nm,"-foptfn","rosenbrock.fixed.history.fopt.txt");
36 nm = nmplot_configure(nm,"-sigmafn","rosenbrock.fixed.history.sigma.txt");
37 //
38 // Perform optimization
39 //
40 mprintf("Searching for minimum...\n");
41 nm = nmplot_search(nm);
42 nmplot_display(nm);
43 // Plot the contours of the cost function and the simplex history
44 mprintf("Plotting contour...\n");
45 [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , xmin = -2.0 , xmax = 4.0 , ymin = -2.0 , ymax = 4.0 , nx = 100 , ny = 100 );
46 f = scf();
47 contour ( xdata , ydata , zdata , [0.1 1.0 2.0 5.0 10.0 15.0 20.0] )
48 nmplot_simplexhistory ( nm );
49 mprintf("Plotting history of fbar...\n");
50 f = scf();
51 nmplot_historyplot ( nm , "rosenbrock.fixed.history.fbar.txt" , ...
52   mytitle = "Function Value Average" , myxlabel = "Iterations" );
53 mprintf("Plotting history of fopt...\n");
54 f = scf();
55 nmplot_historyplot ( nm , "rosenbrock.fixed.history.fopt.txt" , ...
56   mytitle = "Minimum Function Value" , myxlabel = "Iterations" );
57 mprintf("Plotting history of sigma...\n");
58 f = scf();
59 nmplot_historyplot ( nm , "rosenbrock.fixed.history.sigma.txt" , ...
60   mytitle = "Maximum Oriented length" , myxlabel = "Iterations" );
61 deletefile("rosenbrock.fixed.history.simplex.txt");
62 deletefile("rosenbrock.fixed.history.fbar.txt");
63 deletefile("rosenbrock.fixed.history.fopt.txt");
64 deletefile("rosenbrock.fixed.history.sigma.txt");
65 nm = nmplot_destroy(nm);
66
67