I am trying to write the following objective function in DCP format:

f(Z,\Omega) = \text{Tr}[Z \Omega]

with Z, \Omega square, PSD matrices. This is just one term in an overall larger objective function. I tried rewriting it using norm and quad_form in different ways, but I can’t seem to get around that inner matrix-matrix multiplication and keep getting rejected by CVX for violating the DCP rules. Would anyone have a suggestion on how to cram this thing into CVX following the DCP rules?

For example, the code below is rejected with the error “Disciplined convex programming error: Only scalar quadratic forms can be specified in CVX.”

cvx_begin sdp

variable Omega(q,q) semidefinite

variable Z(q,q) semidefinite

minimize( norm(Z*Omega,‘fro’)

cvx_end