Hello friends!
I hope you are all doing great and staying safe!
This has been a very helpful and engaging community!
So, I have been battling with a problem lately but have not been able to find a solution yet. I believe I must be doing something wrong when translating the math into Matlab. Here is the situation.
I have a complex matrix that contains some observed data points and some that are missing, which are filled with NaN in Matlab. This matrix has to be Hermitian and positive semidefinite, which is a requirement for the problem. I am trying to complete the matrix (i.e. find the unobserved entries) by minimizing the nuclear norm subject to some constraints. Mathematically, this is:
Here, the operator A(S) just extracts the known elements. It is included to avoid changing the observed points. So, the nuclear norm of S has to be minimized, subject that the below conditions. I have expressed this in matlab as:
mmm=~isnan( C );
cvx_begin
variable X(N,N) hermitian semidefinite
minimize (norm_nuc(X))
subject to
norm(X(mmm)-aux(mmm))<= epsilon
cvx_end
However, the code does not seem to do what I want. Instead, it just places zeros where the original unobserved values are located. Do you have any suggestions?
Thank you and take care you all
David