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