c2e5c9791ce9a8be22d528ef62f4c419493ed1ff
[scilab.git] / scilab / modules / optimization / tests / unit_tests / optimsimplex / optimsimplex_new.dia.ref
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008-2009 - INRIA - Michael Baudin
3 // Copyright (C) 2011 - DIGITEO - Michael Baudin
4 //
5 // Copyright (C) 2012 - 2016 - Scilab Enterprises
6 //
7 // This file is hereby licensed under the terms of the GNU GPL v2.0,
8 // pursuant to article 5.3.4 of the CeCILL v.2.1.
9 // This file was originally licensed under the terms of the CeCILL v2.1,
10 // and continues to be available under such terms.
11 // For more information, see the COPYING file which you should have received
12 // along with this program.
13 // <-- CLI SHELL MODE -->
14 function y = rosenbrock (x)
15   y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
16 endfunction
17 //
18 // Test optimsimplex_new with a matrix of coordinates
19 //
20 coords = [
21     0.    0.  
22     1.    0.  
23     0.    1.  
24 ];
25 s1 = optimsimplex_new ( coords );
26 computed = optimsimplex_getallx ( s1 );
27 expected = [
28     0.    0.  
29     1.    0.  
30     0.    1.  
31 ];
32 assert_checkequal ( computed , expected );
33 computed = optimsimplex_getn(s1);
34 assert_checkequal ( computed , 2 );
35 computed = optimsimplex_getnbve (s1);
36 assert_checkequal ( computed , 3 );
37 s1 = optimsimplex_destroy(s1);
38 //
39 // Test optimsimplex_new with a matrix of coordinates and 
40 // a function
41 //
42 coords = [
43     0.    0.  
44     1.    0.  
45     0.    1.  
46 ];
47 s1 = optimsimplex_new ( coords , rosenbrock );
48 computed = optimsimplex_getall ( s1 );
49 expected = [
50     1.      0.    0.  
51     100.    1.    0.  
52     101.    0.    1.  
53 ];
54 assert_checkequal ( computed , expected );
55 computed = optimsimplex_getn(s1);
56 assert_checkequal ( computed , 2 );
57 computed = optimsimplex_getnbve (s1);
58 assert_checkequal ( computed , 3 );
59 s1 = optimsimplex_destroy(s1);
60 //
61 // Test with a function which has an additional argument
62 //
63 myobj = tlist(["T_MYSTUFF","nb"]);
64 myobj.nb = 0;
65 function [ y , myobj ] = mycostf ( x , myobj )
66   y = rosenbrock(x);
67   myobj.nb = myobj.nb + 1
68 endfunction
69 coords = [
70     0.    0.  
71     1.    0.  
72     0.    1.  
73 ];
74 [ s1 , myobj ] = optimsimplex_new ( coords , mycostf , myobj );
75 computed = optimsimplex_getall ( s1 );
76 expected = [
77     1.      0.    0.  
78     100.    1.    0.  
79     101.    0.    1.  
80 ];
81 assert_checkequal ( computed , expected );
82 assert_checkequal ( myobj.nb , 3 );
83 computed = optimsimplex_getn(s1);
84 assert_checkequal ( computed , 2 );
85 computed = optimsimplex_getnbve (s1);
86 assert_checkequal ( computed , 3 );
87 s1 = optimsimplex_destroy ( s1 );
88 //
89 // Test optimsimplex_new with a matrix of coordinates made of k=5 vertices
90 //
91 coords = [
92     0.    0.  
93     1.    0.  
94     0.    1.  
95     1.    1.  
96     2.    2.  
97 ];
98 s1 = optimsimplex_new ( coords , rosenbrock );
99 computed = optimsimplex_getall ( s1 );
100 expected = [
101     1.      0.    0.  
102     100.    1.    0.  
103     101.    0.    1.  
104     0.      1.    1.  
105     401.    2.    2.  
106 ];
107 assert_checkequal ( computed , expected );
108 computed = optimsimplex_getn(s1);
109 assert_checkequal ( computed , 2 );
110 computed = optimsimplex_getnbve (s1);
111 assert_checkequal ( computed , 5 );
112 s1 = optimsimplex_destroy(s1);
113 // Check printing system
114 coords = [
115     0.    0.  
116     1.    0.  
117     0.    1.  
118     1.    1.  
119     2.    2.  
120 ];
121 s1 = optimsimplex_new ( coords , rosenbrock );
122 string(s1)
123  ans  =
124 !Optim Simplex Object:  !
125 !                       !
126 !=====================  !
127 !                       !
128 !nbve: 5                !
129 !                       !
130 !n: 2                   !
131 !                       !
132 !x: 5-by-2 matrix       !
133 !                       !
134 !fv: 5-by-1 matrix      !
135 s1
136  s1  = 
137 Optim Simplex Object:
138 =====================
139 nbve: 5
140 n: 2
141 x: 5-by-2 matrix
142 fv: 5-by-1 matrix
143 s1 = optimsimplex_destroy(s1);
144 //
145 coords = [
146     0.    0.  
147     1.    0.  
148     0.    1.  
149     1.    1.  
150     2.    2.  
151 ];
152 s1 = optimsimplex_new ( coords );
153 s1
154  s1  = 
155 Optim Simplex Object:
156 =====================
157 nbve: 5
158 n: 2
159 x: 5-by-2 matrix
160 fv: [] matrix
161 s1 = optimsimplex_destroy(s1);
162 // Check with empty function
163 coords = [
164     0.    0.  
165     1.    0.  
166     0.    1.  
167     1.    1.  
168     2.    2.  
169 ];
170 s1 = optimsimplex_new ( coords , [] )
171  s1  = 
172 Optim Simplex Object:
173 =====================
174 nbve: 5
175 n: 2
176 x: 5-by-2 matrix
177 fv: [] matrix
178 computed = optimsimplex_getn(s1);
179 assert_checkequal ( computed , 2 );
180 computed = optimsimplex_getnbve (s1);
181 assert_checkequal ( computed , 5 );
182 computed = optimsimplex_getallx(s1);
183 assert_checkequal ( computed , coords );
184 s1 = optimsimplex_destroy(s1);