cvx_begin
variable w(M*J,1) complex
minimize max(abs(C_clo’*w))
subject to
for i = 1:subband
abs(Ck(:,i)’*w) <= 0.01;
end
real(C0’*w) == f0;
cvx_end
However, the status shown failed. I verified both of the constraints and found that the second one (real(C0’*w) == f0) seems not satisfied by logical operation, while the difference could be very slight as shown in the graph. May I know in this situation can the results be used?
We don’t know what you mean by Status failed because you haven’t shown the CVX and solver output.
Even if the solver and CVX claim to have succeeded in finding an optimum, (equality) constrains only need be satisfied to within a feasibility tolerance. Therefore, you can’t expect equality constraints be satisfied as logical equalities The results you displayed showed those elements of the equality constraint are satisfied to at least 4 decimal places.
Very thanks for your reply. My result is shown as below. That might be the issue of precision. I will set the precision as “low” and check again. Thanks for your suggestion!
I am surprised if the CVX variable w had any value other than NaN after the solver failed. In any event, the values of the CVX variables should be considered to be meaningless after the solver fails, and should not be used for anything.
Many thanks for your reply! I am surprised about the results as well since the obtained w can satisfy both of the constraints (although the logical operation seems inconsistent but the tolerance seems acceptable) while the status shows failed. As you said the variable should be considered to be meaningless in this case, I will try Mosek and Sedumi then.