# Talk:Beginning with CVX

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

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

The code still not working. I think I’m making thinks wrong (sure). I have a dude.

The new code could be:

```%0)Initialization
clear all;

%cvx_setup
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=1e-6;
Epsilon2=1e-6;
%3)3
[v_W,D] = eig( full ( W ) )
[v_H,D] = eig( full ( H ) )

cvx_begin
variables p1 p2 W(4,4) R(2,4)
if ( Epsilon1 - lamda_W )>(lamda_H+Epsilon2)    CK=v_W'*W*v_W - Epsilon1*eye(2*n) ;
else CK=-Epsilon2*eye(2*n) - v_H'*H*v_H ;
end

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)

CK  == semidefinite(2*n);

cvx_end

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

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

```