Optimization: let tests pass
[scilab.git] / scilab / modules / optimization / tests / unit_tests / lmitool.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 //<-- ENGLISH IMPOSED -->
10 // Constants
11 rand("seed", 0);
12 n  = 2;
13 A1 = rand(n, n);
14 A2 = rand(n, n);
15 Xs = diag(1:n);
16 Q1 = -(A1'*Xs+Xs*A1+0.1*eye());
17 Q2 = -(A2'*Xs+Xs*A2+0.2*eye());
18 lmitool("prob", "X", "A1, A2"); // Create prob.sci
19  messagebox: functions saved in SCI/prob.sci
20 deletefile "prob.sci";
21 copyfile("SCI/modules/optimization/demos/prob_bak.sci", "prob.sci"); // Replace prob.sci by prob_bak.sci
22 exec("prob.sci", -1);
23 X = prob(A1, A2); // Run optimization
24 lmisolver: Construction of canonical representation.
25 lmisolver: Basis Construction.
26 lmisolver:     FEASIBILITY PHASE.
27     primal obj.  dual obj.  dual. gap 
28      6.66e-01    -5.03e+02   5.03e+02
29      8.37e+01    -4.99e+02   5.83e+02
30      6.88e+01    -2.80e+00   7.16e+01
31      4.33e+00    -2.67e+00   7.00e+00
32      5.65e-01    -1.78e-01   7.43e-01
33     -9.58e-02    -1.57e-01   6.13e-02
34 lmisolver: Target value reached.
35 lmisolver: feasible solution found.
36 lmisolver:       OPTIMIZATION PHASE.
37     primal obj.  dual obj.  dual. gap 
38     -2.76e+00    -3.62e+00   8.56e-01
39     -3.13e+00    -3.27e+00   1.35e-01
40     -3.14e+00    -3.16e+00   1.62e-02
41     -3.14e+00    -3.14e+00   1.62e-03
42     -3.14e+00    -3.14e+00   1.27e-04
43     -3.14e+00    -3.14e+00   1.40e-05
44     -3.14e+00    -3.14e+00   4.40e-07
45     -3.14e+00    -3.14e+00   4.54e-08
46     -3.14e+00    -3.14e+00   4.06e-09
47 lmisolver: optimal solution found
48 refX = [1.0635042 0; 0 2.0784841];
49 refY = 0;
50 refZ = list([0.0731600 0.7080179; 0.7080179 0.7186999], [0.1154910 0.5345239; 0.5345239 1.4843684]);
51 refC = -1.0635042;
52 [Y, Z, c] = prob_eval(X); // Check evaluaton function value at the point found
53 assert_checkalmostequal(X, refX, [], 1d-6);
54 assert_checkalmostequal(Y, refY, [], 1d-6);
55 assert_checkalmostequal(Z(1), refZ(1), [], 1d-6);
56 assert_checkalmostequal(Z(2), refZ(2), [], 1d-6);
57 assert_checkalmostequal(c, refC, [], 1d-6);
58 deletefile "prob.sci"; // Delete created file