Singular value OK/Eigenvalue Error : Sum minimization

When I try to solve this:

k = 2; p = 4
cvx_clear
cvx_begin SDP
variable E(p, p);
expression Eex(2*p, 2*p);
Eex = [zeros(p, p) E.';
    E, zeros(p, p)];
variable t 
variable Z(2*p,2*p) symmetric
Z == semidefinite(2*p);
minimize k*t+trace(Z);
t*eye(2*p)+Z-Eex >= 0;
(Some constraints on E)
cvx_end

this works out fine with Status: Solved but when I try to solve this:

k = 2; p = 4
cvx_clear
cvx_begin SDP
variable E(p, p);
variable t 
variable Z(p,p) symmetric
Z == semidefinite(p);
minimize k*t+trace(Z);
t*eye(p)+Z-E >= 0;
(Same constraints on E)
cvx_end

this turns out infeasible. Does it have to do with the constraints?

Well, we don’t know what the rest of your constraints are.

Note that in your 2nd program, t*eye(p)+Z-E >= 0; is not a properly entered LMI, because it may not be symmetric. You should have received a CVX warning about this. You should have declared E to be symmetric. Note that in your first program, your LMI t*eye(2*p)+Z-Eex >= 0; is symmetric because Eex is constructed to be symmetric.

Please use Preformatted text icon when displaying code (I edited your posts to use it).

You are right. I did receive a warning. I shouldn’t have overlooked that part. Surprisingly, even after I declare variable E(p, p) symmetric, it’s still infeasible. I’m just confused as how it works for the singular value case but fails for the eigenvalue.

Here are some preliminaries for setting up the constraints that follow.

p_init = randi([60, 100]);     
A_m = rand(p, p) > 0.3;           
A = 10.*(rand(p, p) - 0.5).*A_m;   
b_init = randi(p^2, p_init, 1);
b = unique(b_init); p_cons = size(b, 1);
a = setdiff(1:p^2, b);            
c = 10.*(rand(p_cons, 2) - 0.5);    
L = min(c.').';                   
U = max(c.').';                   

The constraints (to impose some bounds) are as follows:

E(a) == A(a);
E(b) >= L;     
E(b) <= U;

@mcg: Could you kindly take a look at this? I’ve been stuck on this for days.

[Edit] I’ve been able to solve this, finally! I was overlooking one obvious detail. After declaring E to be symmetric, I should not assign arbritary bounds on the elements of E. I have fixed this now.