Talk:Beginning with CVX
From Wikimization
(Difference between revisions)
(New page: <pre> lamda_W=eig(full(W)) </pre>) |
|||
| Line 1: | Line 1: | ||
<pre> | <pre> | ||
lamda_W=eig(full(W)) | lamda_W=eig(full(W)) | ||
| + | </pre> | ||
| + | -------------------------------------------------------------------- | ||
| + | Thanks for the idea<pre>full(W)</pre> it's great, it works!!! Thank you very much :D. | ||
| + | |||
| + | I have an answer, how to calculate the normalized eigenvector. | ||
| + | |||
| + | Maybe? <pre>v_W=eig(full(W))/max(eig(full(W)))</pre> | ||
| + | |||
| + | And... how does i have to undersand the result? | ||
| + | |||
| + | In the tutorial don't explain anything, or, with type K in Matlab(is the variable I want to know) thats all? | ||
| + | |||
| + | Thanks a lot again. | ||
| + | |||
| + | Here is the new code: | ||
| + | |||
| + | <pre> | ||
| + | |||
| + | clear all; | ||
| + | n=2; m=1; | ||
| + | |||
| + | A_a=3*eye(2*n,2*n) | ||
| + | B_a=4*eye(2*n,2*m) | ||
| + | W=eye(4) | ||
| + | R=(zeros(2,4)) | ||
| + | |||
| + | cvx_begin | ||
| + | |||
| + | expression K(2*m,2*n) | ||
| + | |||
| + | H=W*A_a'+A_a*W-B_a*R-R'*B_a' | ||
| + | |||
| + | variables p1 p2 Epsilon1 Epsilon2 W(4,4) R(2,4) | ||
| + | |||
| + | minimize (p1+p2) | ||
| + | |||
| + | subject to | ||
| + | for p=1:2 | ||
| + | W(1,1)<=p1 | ||
| + | W(2,2)<=p1 | ||
| + | W(3,3)==W(1,1) | ||
| + | W(4,4)==W(2,2) | ||
| + | |||
| + | for q=1 | ||
| + | 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) | ||
| + | end | ||
| + | end | ||
| + | W>=Epsilon1*eye(2*n,2*n) | ||
| + | H<=-Epsilon2*eye(2*n,2*n) | ||
| + | |||
| + | cvx_end | ||
| + | |||
| + | lamda_W=eig(full(W)) | ||
| + | lamda_H=eig(H) | ||
| + | v_W=eig(full(W))/max(eig(full(W)))%%normalized eigenvector :| | ||
| + | v_H=eig(H)/max(eig(H)) | ||
| + | |||
| + | para=0 %STOP | ||
| + | |||
| + | while para==0 | ||
| + | |||
| + | if ( Epsilon1 - lamda_W )>(lamda_H+Epsilon2) | ||
| + | |||
| + | cvx_begin | ||
| + | |||
| + | H=W*A_a'+A_a*W-B_a*R-R'*B_a' | ||
| + | |||
| + | variables p1 p2 Epsilon1 Epsilon2 W(4,4) R(2,4) | ||
| + | |||
| + | minimize (p1+p2) | ||
| + | |||
| + | subject to | ||
| + | for p=1:2 | ||
| + | W(1,1)<=p1 | ||
| + | W(2,2)<=p1 | ||
| + | W(3,3)==W(1,1) | ||
| + | W(4,4)==W(2,2) | ||
| + | |||
| + | for q=1 | ||
| + | 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) | ||
| + | end | ||
| + | end | ||
| + | W>=Epsilon1*eye(2*n,2*n) | ||
| + | H<=-Epsilon2*eye(2*n,2*n) | ||
| + | |||
| + | v_W'*W*v_w>=Epsilon1 | ||
| + | |||
| + | cvx_end | ||
| + | |||
| + | else | ||
| + | |||
| + | cvx_begin | ||
| + | |||
| + | H=W*A_a'+A_a*W-B_a*R-R'*B_a' | ||
| + | |||
| + | variables p1 p2 Epsilon1 Epsilon2 W(4,4) R(2,4) | ||
| + | |||
| + | minimize (p1+p2) | ||
| + | |||
| + | subject to | ||
| + | for p=1:2 | ||
| + | W(1,1)<=p1 | ||
| + | W(2,2)<=p1 | ||
| + | W(3,3)==W(1,1) | ||
| + | W(4,4)==W(2,2) | ||
| + | |||
| + | for q=1 | ||
| + | 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) | ||
| + | end | ||
| + | end | ||
| + | W>=Epsilon1*eye(2*n,2*n) | ||
| + | H<=-Epsilon2*eye(2*n,2*n) | ||
| + | |||
| + | v_H'*W*v_H<=-Epsilon2 | ||
| + | |||
| + | cvx_end | ||
| + | end | ||
| + | |||
| + | lamda_W=eig(full(W)) | ||
| + | lamda_H=eig(H) | ||
| + | v_W=eig(full(W))/min(eig(full(W)))%%Cálculo del normalized eigenvector | ||
| + | v_H=eig(H)/min(eig(H)) | ||
| + | |||
| + | %STOP | ||
| + | if(lamda_W>=Epsilon1) | ||
| + | if(lamda_H<=-Epsilon2) para=1 | ||
| + | else para = 0 | ||
| + | end | ||
| + | else para =0 | ||
| + | end | ||
| + | |||
| + | end | ||
| + | |||
| + | R | ||
| + | W | ||
| + | K=R/W | ||
</pre> | </pre> | ||
Revision as of 23:32, 3 February 2009
lamda_W=eig(full(W))
Thanks for the idea
full(W)it's great, it works!!! Thank you very much :D.
I have an answer, how to calculate the normalized eigenvector.
Maybe?v_W=eig(full(W))/max(eig(full(W)))
And... how does i have to undersand the result?
In the tutorial don't explain anything, or, with type K in Matlab(is the variable I want to know) thats all?
Thanks a lot again.
Here is the new code:
clear all;
n=2; m=1;
A_a=3*eye(2*n,2*n)
B_a=4*eye(2*n,2*m)
W=eye(4)
R=(zeros(2,4))
cvx_begin
expression K(2*m,2*n)
H=W*A_a'+A_a*W-B_a*R-R'*B_a'
variables p1 p2 Epsilon1 Epsilon2 W(4,4) R(2,4)
minimize (p1+p2)
subject to
for p=1:2
W(1,1)<=p1
W(2,2)<=p1
W(3,3)==W(1,1)
W(4,4)==W(2,2)
for q=1
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)
end
end
W>=Epsilon1*eye(2*n,2*n)
H<=-Epsilon2*eye(2*n,2*n)
cvx_end
lamda_W=eig(full(W))
lamda_H=eig(H)
v_W=eig(full(W))/max(eig(full(W)))%%normalized eigenvector :|
v_H=eig(H)/max(eig(H))
para=0 %STOP
while para==0
if ( Epsilon1 - lamda_W )>(lamda_H+Epsilon2)
cvx_begin
H=W*A_a'+A_a*W-B_a*R-R'*B_a'
variables p1 p2 Epsilon1 Epsilon2 W(4,4) R(2,4)
minimize (p1+p2)
subject to
for p=1:2
W(1,1)<=p1
W(2,2)<=p1
W(3,3)==W(1,1)
W(4,4)==W(2,2)
for q=1
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)
end
end
W>=Epsilon1*eye(2*n,2*n)
H<=-Epsilon2*eye(2*n,2*n)
v_W'*W*v_w>=Epsilon1
cvx_end
else
cvx_begin
H=W*A_a'+A_a*W-B_a*R-R'*B_a'
variables p1 p2 Epsilon1 Epsilon2 W(4,4) R(2,4)
minimize (p1+p2)
subject to
for p=1:2
W(1,1)<=p1
W(2,2)<=p1
W(3,3)==W(1,1)
W(4,4)==W(2,2)
for q=1
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)
end
end
W>=Epsilon1*eye(2*n,2*n)
H<=-Epsilon2*eye(2*n,2*n)
v_H'*W*v_H<=-Epsilon2
cvx_end
end
lamda_W=eig(full(W))
lamda_H=eig(H)
v_W=eig(full(W))/min(eig(full(W)))%%Cálculo del normalized eigenvector
v_H=eig(H)/min(eig(H))
%STOP
if(lamda_W>=Epsilon1)
if(lamda_H<=-Epsilon2) para=1
else para = 0
end
else para =0
end
end
R
W
K=R/W