Line | |
---|
1 | function test_lmirank |
---|
2 | |
---|
3 | A = [0.2 0 1 0;0 0.2 0 1;-1 1 0.2 0;1 -1 0 0.2]; |
---|
4 | B = [0 0 1 0]'; |
---|
5 | C = [0 1 0 0]; |
---|
6 | |
---|
7 | |
---|
8 | X = sdpvar(4,4); |
---|
9 | Y = sdpvar(4,4); |
---|
10 | |
---|
11 | Bp = null(B')'; |
---|
12 | Cp = null(C)'; |
---|
13 | W = eye(3)*1e-6; |
---|
14 | F = set(Bp*(A*X+X*A')*Bp' < -W) + set(Cp*(Y*A+A'*Y)*Cp' < -W); |
---|
15 | |
---|
16 | F = F + set([X eye(4);eye(4) Y] >= 0); |
---|
17 | F = F + set(rank([X eye(4);eye(4) Y]) <= 4+2); |
---|
18 | |
---|
19 | sol = solvesdp(F,[],sdpsettings('lmirank.solver','sedumi','sedumi.eps',0)) |
---|
20 | e = abs(eig(double([X eye(4);eye(4) Y]))); |
---|
21 | |
---|
22 | mbg_asserttrue(sol.problem == 0); |
---|
23 | mbg_asserttrue(nnz(e > 1e-6) == 6); |
---|
24 | |
---|
25 | |
---|
Note: See
TracBrowser
for help on using the repository browser.