Rev | Line | |
---|
[37] | 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.