1 | function test_gp_gpposyminpfnorm |
---|
2 | |
---|
3 | sdpvar lambda b(4,1) s(3,1) v(4,1) c(2,1) |
---|
4 | |
---|
5 | % constants |
---|
6 | c_nom = [1 1]'; |
---|
7 | b_nom = [2 3 2 1]'; |
---|
8 | alpha = [1 1 1 1]'; beta = [1 1 1 1]'; |
---|
9 | s_nom = [1 1 3]'; |
---|
10 | gamma = [1 1 1]'; delta = [1 1 1]'; |
---|
11 | |
---|
12 | % objective |
---|
13 | obj = lambda; |
---|
14 | |
---|
15 | % constraints |
---|
16 | constr = [... |
---|
17 | % inequalities |
---|
18 | b'*v <= lambda*v(1); |
---|
19 | s(1)*v(1) <= lambda*v(2); |
---|
20 | s(2)*v(2) <= lambda*v(3); |
---|
21 | s(3)*v(3) <= lambda*v(4); |
---|
22 | [0.5; 0.5] <= c; c <= [2; 2]; |
---|
23 | % equalities |
---|
24 | b == b_nom.*((ones(4,1)*(c(1)/c_nom(1))).^alpha).*... |
---|
25 | ((ones(4,1)*(c(2)/c_nom(2))).^beta); |
---|
26 | s == s_nom.*((ones(3,1)*(c(1)/c_nom(1))).^gamma).*... |
---|
27 | ((ones(3,1)*(c(2)/c_nom(2))).^delta); |
---|
28 | ]; |
---|
29 | |
---|
30 | % find the optimal eigenvalue |
---|
31 | sol = solvesdp(constr,obj,sdpsettings('solver','mosek,gpposy,fmincon-geometric')); |
---|
32 | |
---|
33 | mbg_asserttolequal(sol.problem,0); |
---|
34 | mbg_asserttolequal(double(obj), 0.80406738656616,1e-5); |
---|