* Bug #9789 fixed - Optimization: optim printing its termination status
[scilab.git] / scilab / modules / optimization / tests / unit_tests / optim_matrix.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) ????-2008 - INRIA - Michael Baudin
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- CLI SHELL MODE -->
8 //
9 // optim_matrix.tst --
10 //   Test the optim command when the optimized unknown is a matrix.
11 //
12 Leps=8.e-5;
13 // Test #1
14 // The expected solution of the problem is A^-1
15 // Test with norm 2
16 deff('[f,g,ind]=ndsim1(x,ind)', 'y=A*x-b;f=norm(y,2)^2;g=2*A''*y')
17 A=rand(2,2);
18 b=eye(A);
19 x0=eye(2,2);
20 [f,X,g]=optim(ndsim1,x0);
21 Norm of projected gradient lower than   0.9402179D-16.
22
23 if norm(X-inv(A))>Leps then bugmes();quit;end
24 // Test #2
25 // The expected solution of the problem is the solution of Ax=b
26 deff('[f,g,ind]=ndsim2(x,ind)', 'y=A*x-b;f=sum(abs(y));g=A''*sign(y)')
27 A=rand(2,2);
28 b=[1;0];
29 Ai=inv(A);
30 [f,x,g]=optim(ndsim2,[1;0],'nd');
31 End of optimization.
32
33 if norm(x-Ai(:,1))>Leps then bugmes();quit;end
34 // Test #3
35 deff('[f,g,ind]=ndsim3(x,ind)', [
36 'y=A*x-b;f=max(abs(y)),sel=abs(y)==f'
37 'g=A(sel,:)''*sign(y(sel))']);
38 // TODO : test something ! These are hidden dead bodies...
39 //A=rand(2,2);
40 //b=[1;0];
41 //Ai=inv(A);
42 //[f,x,g]=optim(ndsim,[1;0],'nd');
43 //if norm(x-Ai(:,1))>Leps then bugmes();quit;end