# Disciplined convex programming error Invalid quadratic form(s): not a square..//

My code is:

``````Nt = 3;
d = rand(Nt,1);
u = rand(Nt,1);
D = d * d';
U = u * u';

cvx_clear
cvx_begin sdp
cvx_solver mosek
variable T(Nt,Nt) hermitian semidefinite
expressions obj
maximize(real(log(1+trace(T*D)*(1-trace(U*T)))));
subject to
trace(T) <= 1
cvx_end
T_obj = T;
``````

where T is a rank-one matrix and D,U are hermitian, semidefinite matrix. I think it can be seen that the objective is monotonically increasing with respect to T ( when T is decomposed into UEV ^ H, then tr (DT) = tr (aD), a is the non-zero eigenvalue of T), but an error is reported in the optimization:
Disciplined convex programming error: Invalid quadratic form(s): not a square.

The argument of `log` is in general a non-convex quadratic, hence the error message. Unless you show otherwise, I will assume this is not a convex optimization problem, even if `log` is omitted from the objective function.

Thanks for replying! However, when I remove the log operation, the error still exists:
Disciplined convex programming error:
Invalid quadratic form(s): not a square.

I think the objective function should be related to T and increase with the non-zero eigenvalue of T. In this case, how to design the objective function

It is your problem, not mine. So I have no idea what is an appropriate objective function.