h and w are both complex sequence vectors, h is a known quantity, and w is the required solution
trace(hk(:,a)*hk(:,a)'*w*w')How should the traces of this matrix be represented in CVX?
By the cyclic permutation invariance of trace,
trace(hk(:,a)*hk(:,a)’*w*w’) = trace(w'*hk(:,a)*hk(:,a)’*w))
and the latter can be reformulated as
square_pos(norm(hk(:,a)’*w,'fro')), which can be used in CVX.
Depending on how the trace appears in your model, perhaps its square root can be used instead, in which case, the square_pos wouldn’t be applied.
As you know, trace is linear, so trace(hk*hk'-w*w') = trace(hk*hk') - trace(w*w') .
It better be the case that only one of hk and w is a CVX variable or expression; because otherwise, the following expression is neither convex nor concave, and will not be accepted by CVX.
square_pos(norm(hk,'fro')) - square_pos(norm(w,'fro'))
If w is not a CVX variable or expression, there is no need for the reformulation of that term.
Also, if hk and w are vectors, then ,'fro' is not necessary, but does no harm.
Actually, in the expression in your first post, it better be the case that only one of hk and w is a CVX variable or expression, although it doesn’t matter which .