Solve trace problem with CVX:


(farid) #1

hello dears
i want the trace problem with CVX ,but when i write “CVX begin” the status is “Failed” but whenever i write “CVX_begin sdp” the answer is “solved” but i dont know that the answer is true ,i dont know what type of the solver i select ,please help me
thank a lot


(Mark L. Stone) #2

You always need to start with
cvx_begin
or
cvx_begin sdp
not
cvx begin

You will have to provide more information if you want help in determining whether your problem has been correctly solved


(farid) #3

Okey , thanks for attention
this is a one step of a algorithm, this problem is programmed in matlab like this :

cvx_begin sdp
variable P(size(A,1),size(A,2)) symmetric;
variable s1(1,1);
variable s2(1,1);
minimize(trace((cell2mat(S1{j})*inv(X))*P+cell2mat({j})*(s1*inv(X))))
subject to
(A'*P+P*A-s2*C'*C)<=0
([(A-B*B'*X)'*P+P*(A-B*B'*X) X'*B;B'*X -s1*eye(size(B,2))])<=0
P>=0
(s1*inv(X))>=0
[s1*inv(X) eye(size(A,1));eye(size(A,1)) P]>=0
cvx_end

this is correct?


(Mark L. Stone) #4

I don’t know what your input data is and what your model is supposed to be. But if it executes without warning or error, and CVX reports that it is solved, then you have solved something, whether or not that is what you actually wanted to solve.

Have you examined the solution and assessed whether it seems to meet the constraints you intended and is at least plausible?

The solver output should say which solver was used. You can use
cvx_solver <solver name>
to specify a specific solver to use.