Without word real in objective function it was giving error -"Expressions in objective functions must be real."
So i made keyword real. But I think i might be loosing some information in complex part.
So I used keyword ‘abs’ instead of ‘real’ but now the error is "Disciplined convex programming error:
Cannot maximize a(n) convex expression"
I am trying to maximize SINR which is my real problem and not atall familiar with optimization. This code snippet is just small part and I need this Z to further formulate. Since I think rest of my MATLAB code is fine. I think I might be loosing some information in this real(trace(A*Z))
Thanks in advance
You shouldn’t be getting the real warning unless phi is complex. And if that is complex, in all likelihood, your variable Z should be, too, and you should be using a complex semidefinite constraint. The easiest way to do that is simply to declare
variable Z(n,n) hermitian
and also change the semidefinite constraint to
Z >= 0
Since you are using SDP mode, CVX will automatically convert this to a hermitian_semidefinite constraint.
You are still going to need real in there even if this is the case.
Phi is complex. Does that mean objective function has to be real. Why cant i take absolute value to make it real? that way i can have information from imaginary part as well. By specifying Z to be hermitian final SINR further diverges from correct value.