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

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

Added original make3d

File size: 1.3 KB
Line 
1function massive
2ops{1} = sdpsettings('sos.cong',0,'sos.model',1,'verbose',0);
3ops{2} = sdpsettings('sos.cong',1,'sos.model',2,'verbose',0);
4ops{3} = sdpsettings('sos.cong',0,'sos.newton',0,'verbose',0,'sos.extlp',0);
5
6% Markus tentacles problem
7sdpvar x y a
8f = x^4 * y^2 + x^2 * y^4 - 3 * x^2 * y^2 + 1, k = 0;
9df = jacobian(f, [x y]);
10g = 1 - (df(1)^2 + df(2)^2) * (x^2 + y^2);
11if k >= 0
12    v = monolist([x; y], 2*k);
13    coeffVec = sdpvar(length(v), 1);
14    t = coeffVec' * v;
15    constraints = set(sos(f - a - t * g)) + set(sos(t));
16else
17    coeffVec = [];
18    constraints = set(sos(f - a));
19end
20F = constraints;
21obj = -a;
22for i = 1:length(ops)
23    i
24    fail = regresstest(F,obj,ops{i},coeffVec);
25    mbg_asserttolequal(fail,0);
26end
27
28
29
30
31function fail  = regresstest(F,obj,ops,pv);
32
33if nargin==3
34    pv = [];
35end
36
37ops.sos.model = 1;
38solvesos(F,obj,ops,pv);
39obj1 = double(obj);
40p1s = checkset(F(find(is(F,'sos'))));
41p1e = checkset(F(find(~is(F,'sos'))));
42
43ops.sos.model = 2;
44solvesos(F,obj,ops,pv);
45obj2 = double(obj);
46p2s = checkset(F(find(is(F,'sos'))));
47p2e = checkset(F(find(~is(F,'sos'))));
48
49fail = 0;
50
51if abs(obj1-obj2) > 1e-4
52    fail = 1;
53end
54
55if any(p1s>1e-4)
56   fail = 2;
57   p1s
58end
59if any(p2s>1e-4)
60   fail = 2;
61   p2s
62end
63if any(p1e<-1e-4)
64   fail = 2;
65   p1e
66end
67if any(p2e<-1e-4)
68   fail = 2;
69   p2e
70end
71if fail==0
72    disp('Correct solution');
73end
Note: See TracBrowser for help on using the repository browser.