How to calculate unknown vectors from semidefinite square matrix variable

(Fred) #1

Hello All,

I have a question regarding how to calculate unknown vector from sdp matrix.
I have a known vector of X=[X1 X2 X3], where X1, X2 and X3 are complex numbers and known, and I also have a vector of Y=[Y1 Y2 Y3].
I defined my sdp matrix of W = X*Y’, my question is how can i get Y vector variables using W matrix?

Any idea?


(Mark L. Stone) #2

Can you please state more clearly what is known, i.e., what are the inputs and constraints, and what is to be found? Do you have a well-thought through mathematical problem?

Note that if X and Y are column vectors, then X*Y' is a rank one matrix, i.e., all but one eigenvalues = 0.

(Dinh) #3

As I understand your problem, you have a rank constraint (if your decision variable is indeed W) which is a non convex constraint.

(Fred) #4

Yes, rank(W) should be 1, but I do not use it under constraints; my only constraint on W is W >= 0.
Actually what I’m trying to do is explained as following:

How can I get [V1^a V1^b V1^c]’ vector?


(Mark L. Stone) #5

Please provide a self-contained and complete mathematical description of the problem, with a consistent notation. Exactly what the inputs are, what is known, what the constraints are, and what is unknown.

As currently written, mind-reading ability seems to be needed more so than optimization or linear algebra knowledge in order to solve your problem, whatever it is.

(Michael C. Grant) #6

Mark’s actually being more patient that I am (thank you Mark!)

This forum is not for general modeling assistance, it is for assistance on actual CVX usage. You’ve presented no code here so there’s no indication that you’ve begun the CVX modeling process. If you haven’t, please consult the users guide, example library, etc. for assistance.

But more importantly, by showing us the model you do have, and asking for help with specific pieces of it, you’re more likely to communicate to us effectively exactly what help you need.

(Fred) #7

Sorry if I created any confussion here Mark and Michael, here is my code for the complete problem

 A = [0.3465   0.1560  0.1580; 0.1560   0.3375   0.1535; 0.1580  0.1535  0.3414];
 Ai = pinv(A);
 B = [A  -Ai; -Ai A];

V0a = 1*exp(0i);
V0b = 1*exp((2i*pi/3));
V0c = 1*exp((-2i*pi/3));
V0 = [V0a V0b V0c]';
for k=1:6 
    E{k} = zeros(6);
    E{k}(k,k) = 1;
    D = E{k}*B;
    F{k} = 1/2*(D + D');

cvx_begin sdp 
cvx_solver SeDuMi

variable W00(3,3) hermitian semidefinite
variable W01(3,3) hermitian semidefinite
variable W10(3,3) hermitian semidefinite
variable W11(3,3) hermitian semidefinite

W = [ W00  W01; W10  W11];
minimize ( 10*(real(trace(F{1}*W))))

subject to 
W >= 0;
W00 == V0*V0';

I know W01=V0*V1’ and how can I get V1 vector from this equation?


(Mark L. Stone) #8

Your problem is underconstrained. It can be reformulated as

cvx_begin sdp 
cvx_solver SeDuMi
variable V1(3) complex
variable W11(3,3) hermitian semidefinite
W = [V0*V0'  V0*V1'; V1*V0' W11];
minimize ( 10*(real(trace(F{1}*W))))
subject to 
W >= 0

which is unbounded. You will need to include additional constraints or change the objective function to get a well-formulated problem.

(Fred) #9

I will look into it. Thanks