849818e9d947ce1fa27d4844df892d5511417621
[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 //
8 // optim_matrix.tst --
9 //   Test the optim command when the optimized unknown is a matrix.
10 //
11 Leps=8.e-5;
12 // Test #1
13 // The expected solution of the problem is A^-1
14 // Test with norm 2
15 deff('[f,g,ind]=ndsim1(x,ind)', 'y=A*x-b;f=norm(y,2)^2;g=2*A''*y')
16 A=rand(2,2);
17 b=eye(A);
18 x0=eye(2,2);
19 [f,X,g]=optim(ndsim1,x0);
20 if norm(X-inv(A))>Leps then bugmes();quit;end
21 // Test #2
22 // The expected solution of the problem is the solution of Ax=b
23 deff('[f,g,ind]=ndsim2(x,ind)', 'y=A*x-b;f=sum(abs(y));g=A''*sign(y)')
24 A=rand(2,2);
25 b=[1;0];
26 Ai=inv(A);
27 [f,x,g]=optim(ndsim2,[1;0],'nd');
28 if norm(x-Ai(:,1))>Leps then bugmes();quit;end
29 // Test #3
30 deff('[f,g,ind]=ndsim3(x,ind)', [
31 'y=A*x-b;f=max(abs(y)),sel=abs(y)==f'
32 'g=A(sel,:)''*sign(y(sel))']);
33 // TODO : test something ! These are hidden dead bodies...
34 //A=rand(2,2);
35 //b=[1;0];
36 //Ai=inv(A);
37 //[f,x,g]=optim(ndsim,[1;0],'nd');
38 //if norm(x-Ai(:,1))>Leps then bugmes();quit;end