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$ – Mark L. Stone Feb 14 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$ – Mark L. Stone Feb 15 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 Feb 15 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$ – Mark L. Stone Feb 15 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$ – Mark L. Stone Feb 15 at 4:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.