# Why do I get Only scalar quadratic forms can be specified in CVX under SDP mode?

#1

I want to implement the optimization problem in theorem 2 of the paper: https://www.aaai.org/Papers/AAAI/2006/AAAI06-086.pdf
I wrote the code as below: why do I get the error as above under SDP? What am I missing? X and y are data.

X = (dataAll(:,1:end-1)).’;
y= dataAll(:,end);

e=ones(200,1);
G=(X'*X).*(y*y');
cvx_begin SDP
variables delta beta1 nu(200) ita(200) w(200)
minimize(norm(delta))
subject to
nu>=0;
w>=0;
ita<=1;
ita>=0;
(ita*ita')>=0;
[G.*(ita*ita'),ita+nu-w;(ita+nu-w)',.5/beta1*(delta-w'*e+ita'*e)]>=0;
cvx_end


the multiplication sign of matlab * is missing above in ita*ita’?

(Mark L. Stone) #2

I don’t know what you’re doing (for instance, where’s the (any) matrix variable M)?

Anyhow, I’m sure it is intended that M \succeq\eta\eta^T be entered via Schur complement as
{M eta;eta' 1] >= 0

Does that resolve your error? I’ll let you fix up the rest.

#3

Thanks for the hint. I did not realize that M is ‘any matrix’. The suggestion helped me but I get error on
[G.M,ita+nu-w;(ita+nu-w)’,.5/beta1(delta-w’*e+ita’*e)]>=0;
I am looking at it.

Thanks a lot.

#4

The above code is modified as below: The two versions gives two different kind of results. Any suggestion which is is better suited under CVX guidelines?
First version:
cvx_begin SDP
variables delta nu(m) ita(m) w(m)
variable M(m,m) symmetric semidefinite
minimize(norm(delta))
subject to
nu>=0;
w>=0;
ita<=1;
ita>=0;
[M ita;ita’ 1] >= 0;
[G.M ita+nu-w;(ita+nu-w)’ 2/beta1(delta-w’*e+ita’*e)]>=0;
cvx_end

And the next version:
cvx_begin SDP
variables delta nu(m) ita(m) w(m) M(m,m)
minimize(norm(delta))
subject to
nu>=0;
w>=0;
ita<=1;
ita>=0;
[sym(M) ita;ita’ 1] >= 0;
[sym(G.M) ita+nu-w;(ita+nu-w)’ 2/beta1(delta-w’*e+ita’*e)]>=0;
cvx_end

The above two codes gives different results. Any suggestion why?

(Mark L. Stone) #5

Read, study, and work exercises in http://web.stanford.edu/~boyd/cvxbook/ until you have a solid understanding of convex and semidefinite optimization. If while doing that, you have some points of confusion, you can try posting at https://math.stackexchange.com/ to get help on understanding the math.