Given $\mathbf V_t=\mathbf v_t\mathbf v_t^H$ where $\mathbf v_t=\left(e^{j\theta_{1}},e^{j\theta_{2}}\right)^H$: \begin{equation*} \begin{array}{ll} \underset{\mathbf V}{\operatorname{minimize}} & 1 \\ \text { subject to } & \operatorname{diag}(\mathbf V)=1\\ &\|\mathbf V\|_*-\operatorname{trace}\left[\boldsymbol\lambda\boldsymbol\lambda^H\left(\mathbf V-\mathbf V_t\right)\right]-\|\mathbf V_t\|_2\leq 0 \end{array} \end{equation*} where $\|\bullet\|_*$ and $\|\bullet\|_2$ is the nuclear norm and 2-norm. $\boldsymbol\lambda$ is the leading eigenvector of $\mathbf V_t$.

Since $\mathbf V=\mathbf V_t$ is a feasible solution, the optimization problem is feasible. Why does CVX show the problem is infeasible?

clear;clc;close all;

Vt = rand(2,1);
Vt = (exp(1i*Vt)*exp(1i*Vt)');
[lambda,~] = eigs(Vt,1,'largestabs');
cvx_begin sdp
    variable V(2,2) hermitian semidefinite
    subject to
        diag(V) == 1
        norm_nuc(V) - real(trace(lambda*lambda'*(V-Vt))) - norm(Vt,2) <= 0

enter image description here

  • 1
    $\begingroup$ it solves for me to optimlaity, i.e., finds a feasible solution, using several different random number draws and all of Mosek, SeDuMi, and SDPT3. Can you poist reproducible code, copied and pasted, not an image, and show us a complete MATLAB session exhibiting infeasibility? Display the values of Vt and lambda. $\endgroup$ Commented Feb 14, 2021 at 20:43
  • $\begingroup$ I copied and pasted, and ran it multiple times (with different random mumbers) for all 3 solvers, and it solved every time. $\endgroup$ Commented Feb 15, 2021 at 2:45
  • $\begingroup$ Thanks a lot. Unfortunately, I could not get the correct result with CVX. Could you show me your results? $\endgroup$
    – fengbiqian
    Commented Feb 15, 2021 at 2:48
  • $\begingroup$ All real and imaginary elements of V-Vt are less than 1r-9, 1e-10, 1e-15 in magnitude respectively for SeDuMi, SDPT3, Mosek. The exact output varies when random numbers are changed. Try running your program starting from a fresh MATLAB session. $\endgroup$ Commented Feb 15, 2021 at 3:12
  • 2
    $\begingroup$ Your code and logic are fine. Something is screwed up in your MATLAB, CVX, or solver installation or session. $\endgroup$ Commented Feb 15, 2021 at 4:15


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.