# Talk:Beginning with CVX

(Difference between revisions)
 Revision as of 23:54, 5 February 2009 (edit)← Previous diff Revision as of 02:15, 6 February 2009 (edit) (undo)Next diff → Line 7: Line 7: I think I'm wrong with this code, I would like to put the if - else - end with the another constraits, inside the cxv_begin, but the CVX don't let me doing it. Some ideas? I think I'm wrong with this code, I would like to put the if - else - end with the another constraits, inside the cxv_begin, but the CVX don't let me doing it. Some ideas? + + I come work thinking on you idea. I think you idea it’s right and I’m making thinks wrong. + + I have a dude. + + The new code could be: + + 1º I calculate some variables, + + 2º with one if (with depends to variables point 1º) I select one linear constrint depending value of variables in 1º and I make all the: minimize…subjet to with apropiate constraints, convex and the one linear, + + if + cvx_begin + ... + cvx_end + else + cvx_begin + ... + cvx_end + end + + 3ºIf there is not solution STOP, if there is, go to 1º, + + I’ve tried making this, I make: 1º, 2, 3º; return to 1º,2º, 3º And here the CVX says that there is not solution, that’s the reason for trying to keep inside the if – else. + + My dude is, why CVX says there is not solution, it could be because the iteration (making steps 1-2-3) before is the correct. For explain (I know my English isn’t the best, and it’s hard for me to explain and for you to read) + + One iteracion (steps 1, 2, 3) + + All well + + Save data = DATA1 + + One iteracion (steps 1, 2, 3) + + All well + + Save data = DATA2 + + One iteracion (steps 1, 2, 3) + + Wrong, no solution + + Correct data = DATA2 + + What do you think? Any idea? + + Thanks a lot for all. + + ----------------------------------------------------------------------- I don't know how to initialice Epsilon1 and Epsilon2. I'm trying different values. I don't know how to initialice Epsilon1 and Epsilon2. I'm trying different values.

## Revision as of 02:15, 6 February 2009

```lamda_W=eig(full(W))
```

Thanks a lot for all the ideas, they all are greats.

I think I'm wrong with this code, I would like to put the if - else - end with the another constraits, inside the cxv_begin, but the CVX don't let me doing it. Some ideas?

I come work thinking on you idea. I think you idea it’s right and I’m making thinks wrong.

I have a dude.

The new code could be:

1º I calculate some variables,

2º with one if (with depends to variables point 1º) I select one linear constrint depending value of variables in 1º and I make all the: minimize…subjet to with apropiate constraints, convex and the one linear,

if

```  cvx_begin
...
cvx_end
```

else

```  cvx_begin
...
cvx_end
```

end

3ºIf there is not solution STOP, if there is, go to 1º,

I’ve tried making this, I make: 1º, 2, 3º; return to 1º,2º, 3º And here the CVX says that there is not solution, that’s the reason for trying to keep inside the if – else.

My dude is, why CVX says there is not solution, it could be because the iteration (making steps 1-2-3) before is the correct. For explain (I know my English isn’t the best, and it’s hard for me to explain and for you to read)

```         One iteracion (steps 1, 2, 3)
```
```         All well
```
```         Save data = DATA1
```
```         One iteracion (steps 1, 2, 3)
```
```         All well
```
```         Save data = DATA2
```
```         One iteracion (steps 1, 2, 3)
```
```         Wrong, no solution
```
```         Correct data = DATA2
```

What do you think? Any idea?

Thanks a lot for all.

I don't know how to initialice Epsilon1 and Epsilon2. I'm trying different values.

Thanks a lot again.

Here is the new code:

```%0)Initialization
clear all;
n=2; m=1;

A_a=3*eye(2*n,2*n)
B_a=4*eye(2*n,2*m)

%1)1
W=eye(4)
R=(zeros(2,4))

%2)2
H=W*A_a'+A_a*W-B_a*R-R'*B_a'

lamda_W=min(eig(full(W)))
lamda_H=max(eig(H))

Epsilon1=11;
Epsilon2=0.1;

if(lamda_W>=Epsilon1)
if(lamda_H<=-Epsilon2)     para=1
else para = 0
end
else para =0
end

%while para==0
%3)3
[v_W,D] = eig( full ( W ) )
[v_H,D] = eig( full ( H ) )

%   v_W_1 = v_W( : , 1 ) / norm ( v_W ( : , 1 ) ) ;
%   v_W_2 = v_W( : , 2 ) / norm ( v_W ( : , 2 ) ) ;
%   v_W_3 = v_W( : , 3 ) / norm ( v_W ( : , 3 ) ) ;
%   v_W_4 = v_W( : , 4 ) / norm ( v_W ( : , 4 ) ) ;

%   v_H_1 = v_H( : , 1 ) / norm ( v_H ( : , 1 ) ) ;
%   v_H_2 = v_H( : , 2 ) / norm ( v_H ( : , 2 ) ) ;
%   v_H_3 = v_H( : , 3 ) / norm ( v_H ( : , 3 ) ) ;
%   v_H_4 = v_H( : , 4 ) / norm ( v_H ( : , 4 ) ) ;

%4a)4a
if ( Epsilon1 - lamda_W )>(lamda_H+Epsilon2)
Caso=1 %For know where am I

cvx_begin
variables p1 p2 W(4,4) R(2,4)

minimize (p1+p2)

subject to

W(1,1)<=p1
W(2,2)<=p1
W(1,1)>=Epsilon1
W(2,2)>=Epsilon1
W(3,3)==W(1,1)
W(4,4)==W(2,2)

R(1,1)>=-p2
R(1,1)<=p2
R(2,3)==R(1,1)
R(1,2)>=-p2
R(1,2)<=p2
R(2,4)==R(1,2)

H=W*A_a'+A_a*W-B_a*R-R'*B_a'

v_W'*W*v_W - Epsilon1*eye(2*n) == semidefinite(2*n);

cvx_end

else %4b)4b

Caso = 2
cvx_begin

variables p1 p2 W(4,4) R(2,4)

minimize (p1+p2)

subject to

W(1,1)>=Epsilon1
W(2,2)>=Epsilon1
W(1,1)<=p1
W(2,2)<=p1
W(3,3)==W(1,1)
W(4,4)==W(2,2)

R(1,1)>=-p2
R(1,1)<=p2
R(2,3)==R(1,1)
R(1,2)>=-p2
R(1,2)<=p2
R(2,4)==R(1,2)

H=W*A_a'+A_a*W-B_a*R-R'*B_a'

Epsilon2*eye(2*n) + v_H'*H*v_H == -semidefinite(2*n);

cvx_end
end

R
W=full(W)
K=R/W
```