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.