source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/opt/yalmip/dev/tests-mbg/robust/test_robust_1.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

File size: 3.1 KB
Line 
1function test_robust_1
2
3yalmip('clear')
4sdpvar x w;
5F = set(x + w < 1) + set(-0.5 < w < 0.5)
6sol = solverobust(F,-x,[],w);
7
8mbg_asserttolequal(double(x), 1/2, 1e-5);
9mbg_asserttolequal(sol.problem, 0, 1e-5);
10
11F = set(abs(x) + w < 1) + set(-0.5 < w < 0.5)
12sol = solverobust(F,-x,[],w);
13mbg_asserttolequal(double(x), 1/2, 1e-5);
14mbg_asserttolequal(sol.problem, 0, 1e-5);
15
16F = set(abs(x) + w < 1) + set(-2 < w < 2)
17sol = solverobust(F,-x,[],w);
18mbg_asserttolequal(double((sol.problem == 1) | (sol.problem == 12)), 1, 1e-5);
19
20F = set(abs(x) + w < 1) + set(norm(w,1) < 0.3);
21sol = solverobust(F,-x,[],w);
22mbg_asserttolequal(double(x), 0.7, 1e-5);
23mbg_asserttolequal(sol.problem, 0, 1e-5);
24
25F = set(abs(x) + w < 1) + set(norm(w,2) < 0.3);
26sol = solverobust(F,-x,[],w);
27mbg_asserttolequal(double(x), 0.7, 1e-5);
28mbg_asserttolequal(sol.problem, 0, 1e-5);
29
30x = sdpvar(3,1);
31w = sdpvar(2,1);
32F = set(norm(x,1) + sum(w) < 1) + set(norm(w,1) < 0.3);
33sol = solverobust(F,-sum(x),[],w);
34mbg_asserttolequal(double(sum(x)), 0.7, 1e-5);
35mbg_asserttolequal(sol.problem, 0, 1e-5);
36
37x = sdpvar(3,1);
38w = sdpvar(2,1);
39F = set(norm(x,1) + sum(w) < 1) + set(norm(w,1) < 0.3) + set(uncertain(w))
40sol = solvesdp(F,-sum(x));
41mbg_asserttolequal(double(sum(x)), 0.7, 1e-5);
42mbg_asserttolequal(sol.problem, 0, 1e-5);
43
44x = sdpvar(3,1);
45w = sdpvar(2,1);
46F = set(norm(x,1) + sum(w) < 1) + set(w'*w < 0.3^2);
47sol = solverobust(F,-sum(x),[],w);
48mbg_asserttolequal(double(sum(x)), 0.57574, 1e-5);
49mbg_asserttolequal(sol.problem, 0, 1e-5);
50
51% multiple nonlinear operators in uncertainty descr.
52F = set(norm(x,1) + sum(w) < 1) + set(norm(w,1) < 0.3) + set(norm(w,inf) < 0.1);
53sol = solverobust(F,-sum(x),[],w);
54mbg_asserttolequal(double(sum(x)), 0.8, 1e-5);
55mbg_asserttolequal(sol.problem, 0, 1e-5);
56
57% Mixed nonlinear operator
58sdpvar x w
59sol = solverobust(set(norm(x+w,1)  < 1) + set(norm(w,2) < 0.2),-sum(x),[],w)
60mbg_asserttolequal(double(sum(x)), 0.8, 1e-5);
61mbg_asserttolequal(sol.problem, 0, 1e-5);
62
63% Mixed nonlinear operator, only part of w in constraints
64sdpvar x w(5,1)
65sol = solverobust(set(norm(x+w(1),1)  < 1) + set(norm(w,2) < 0.2),-sum(x),[],w)
66mbg_asserttolequal(double(sum(x)), 0.8, 1e-5);
67mbg_asserttolequal(sol.problem, 0, 1e-5);
68%
69% yalmip('clear')
70%
71% x = sdpvar(3,1);
72% w = sdpvar(2,1);
73%
74% F = set(norm(x,1) + norm(w,1) < 1) + set(norm(w,1) < 0.3) + set(norm(w,inf) < 0.1);
75% sol = solverobust(F,-sum(x),[],w);
76% mbg_asserttolequal(double(sum(x)), 0.8, 1e-5);
77% mbg_asserttolequal(sol.problem, 0, 1e-5);
78
79yalmip('clear')
80sdpvar x w t1 t2;
81F = set(abs(x) + w < 1) + set(w == t1*(-0.5) + t2*0.5) + set([t1 t2]>0)+set(t1+t2 == 1)
82sol = solverobust(F,-x,[],[w;t1;t2]);
83mbg_asserttolequal(double(x), 1/2, 1e-5);
84mbg_asserttolequal(sol.problem, 0, 1e-5);
85
86sdpvar x w t
87F = set(x+sum(w) <= 10)
88W = set(-1/2 <= w <= 1/2)
89objective = (x-5)'*(x-5) + x*w;
90sol = solverobust(F + W,objective,[],[w])
91mbg_asserttolequal(double(x), 4.75, 1e-5);
92
93sdpvar x w(2,1)
94F = set(x+sum(w) <= 1) + set([1 x;x 2] > 0);
95W = set(w'*w <= 1/2);
96objective = (x+1)'*(x+1) + x*norm(w,1);
97sol = solverobust(F + W,objective,[],w);
98mbg_asserttolequal(double(x), -1, 1e-5);
Note: See TracBrowser for help on using the repository browser.