I’m having a problem using two semidefinite cones. If I comment out one of the semidefinite constraints, then the code runs (but of course doesn’t solve the problem I wish to solve). Any ideas?
p = 15; alpha = 1; beta = 1; Sigma = randn(p,p+5); Sigma = Sigma*Sigma'; myDot = @(X,Y) X(:)'*Y(:); cvx_begin variables S(p,p) L(p,p) symmetric minimize -log_det(S-L) + myDot(S-L,Sigma) + alpha*norm(S(:),1) + beta*trace(L) subject to L == semidefinite(p); S - L == semidefinite(p); cvx_end
The error is
??? Index exceeds matrix dimensions. Error in ==> cvxprob.eliminate at 200 n_save = nnz(sum(dbCA(:,ineqs~=0)~=0,1)==1+(dbCA(1,ineqs~=0)~=0)); Error in ==> cvxprob.solve at 17 [ At, cones, sgn, Q, P, dualized ] = eliminate( prob, true, shim.dualize ); Error in ==> cvx_end at 79 solve( prob );
If I switch (S - L) to (S + L), the error goes away, but also not the right problem. Any ideas? Using:
CVX, version 2.0 (beta) (c) 2012, CVX Research, Inc. Code: build 941, 2013-03-08 20:30:31 Documentation: build 918, 2013-02-05 16:29:26