Hello,
I would like to solve a problem a bit similar to the problem solved in the paper “Phase Retrieval via Matrix Completion” of Candès et al. My problem can be expressed as:
Min trace(X)
st |A(X)-b| <=eps
X>=0
where A(x) stands for–> trace(A_k X)=b_k for k=1…K
The function SOLVER_SSDP solves the following function
% SOLVER_SSDP Generic semi-definite programs (SDP). Uses smoothing.
% [ x, out, opts ] = solver_sSDP( C, A, b, mu, X0, z0, opts )
% Solves the smoothed standard form Semi-Definite Program (SDP)
% minimize trace(C'*X) + 0.5*mu*||X-X0||_F^2
% s.t. A * vec(X) == b and X >= 0
% where X >= 0 indicates that X is positive semi-definite.
I am interested in change:
A * vec(X)==b
for
abs(A * vec(X))==b
How can I perform that change?
Thanks in advance
%----------------------------EDIT-------------------------------
I am trying to modify some TFOCS functions in order to solve my problem.
Based in two examples provided with the software and in the user guide, I would like to construct my optimization problem:
EXAMPLE 1.
In example 1 the following problem is solved:
Min trace(C*X)
st X>=0
A*vec(X)==b
after some other operations, the tofcs_SCD function is finally called
tfocs_SCD(obj, aff, dualProxF, mu,x0, z0, opts)
where
obj=smooth_linear(C);
aff={1,0,A,b}
dualProxF={proj_psd, proj_Rn}
EXAMPLE 2.
In the second example, the following example is solved:
Min ||x||_1 + 1/2mu ||x||_2^2
st ||Ax-b||_2<=eps
after some other operations, the tfocs_SCD function is finally called with:
obj=prox_l1;
aff={A,-b};
dualProxF=prox_l2(eps);
MY PROBLEM.
I want to solve:
Min trace(C*X)
st X>=0
||A*vec(X) -b||_2 <=eps
I called tfocs_SCD with the following commands
obj=smooth_linear(C);
aff={A,-b};
dualProxF={proj_psd, prox_l2(eps)
Am I doing it ok?
Thanks in advance,
Ignacio