Talk:Beginning with CVX
From Wikimization
(Difference between revisions)
| Line 3: | Line 3: | ||
</pre> | </pre> | ||
-------------------------------------------------------------------- | -------------------------------------------------------------------- | ||
| - | Thanks for the | + | Thanks for the ideas it's great. Thank you very much :D. |
I have an answer, how to calculate the normalized eigenvector. | I have an answer, how to calculate the normalized eigenvector. | ||
| - | Maybe? <pre>v_W=eig(full(W))/ | + | Maybe? <pre>[v_W]=eig(full(W))/norm ....</pre> |
| - | + | I've changed Epsilon1, Epsilon2, they aren't a variable, I think they are constants. | |
| - | + | I'm going to see how to initialice (I'm going to research in the references of my article (Cross fingers) | |
Thanks a lot again. | Thanks a lot again. | ||
| Line 27: | Line 27: | ||
R=(zeros(2,4)) | R=(zeros(2,4)) | ||
| - | + | 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=1; | |
| - | + | Epsilon2=1; | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | lamda_W= | + | if(lamda_W>=Epsilon1) |
| - | lamda_H=eig( | + | if(lamda_H<=-Epsilon2) para=1 |
| - | v_W=eig(full(W))/ | + | else para = 0 |
| - | v_H=eig(H)/max(eig(H)) | + | end |
| + | else para =0 | ||
| + | end | ||
| + | |||
| + | |||
| + | %v_W=eig(W)/(abs(eig(W))) | ||
| + | %v_W=eig(full(W))/abs(full(W))%%normalized eigenvector :| | ||
| + | %v_H=eig(H)/max(eig(H)) | ||
| - | para=0 %STOP | ||
while para==0 | while para==0 | ||
| + | |||
| + | [v_W,D] = eig(W) | ||
| + | [v_H,D] = eig(H) | ||
if ( Epsilon1 - lamda_W )>(lamda_H+Epsilon2) | if ( Epsilon1 - lamda_W )>(lamda_H+Epsilon2) | ||
cvx_begin | cvx_begin | ||
| - | + | ||
| - | + | variables p1 p2 W(4,4) R(2,4) | |
| - | + | ||
| - | variables p1 p2 | + | |
minimize (p1+p2) | minimize (p1+p2) | ||
subject to | subject to | ||
| - | + | ||
W(1,1)<=p1 | W(1,1)<=p1 | ||
W(2,2)<=p1 | W(2,2)<=p1 | ||
| + | W(1,1)>=Epsilon1 | ||
| + | W(2,2)>=Epsilon1 | ||
W(3,3)==W(1,1) | W(3,3)==W(1,1) | ||
W(4,4)==W(2,2) | 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' | |
| - | + | ||
| - | + | W - Epsilon1*eye(2*n) == semidefinite(2*n); | |
| - | + | Epsilon2*eye(2*n) + H == -semidefinite(2*n); | |
| - | + | ||
| - | + | ||
| - | W | + | |
| - | + | ||
| - | v_W'*W* | + | v_W'*W*v_W>=Epsilon1*eye(4) |
cvx_end | cvx_end | ||
| Line 105: | Line 90: | ||
cvx_begin | cvx_begin | ||
| - | |||
| - | H=W*A_a'+A_a*W-B_a*R-R'*B_a' | ||
| - | variables p1 p2 | + | variables p1 p2 W(4,4) R(2,4) |
minimize (p1+p2) | minimize (p1+p2) | ||
subject to | subject to | ||
| - | + | ||
| + | W(1,1)>=Epsilon1 | ||
| + | W(2,2)>=Epsilon1 | ||
| + | |||
W(1,1)<=p1 | W(1,1)<=p1 | ||
W(2,2)<=p1 | W(2,2)<=p1 | ||
| Line 119: | Line 105: | ||
W(4,4)==W(2,2) | W(4,4)==W(2,2) | ||
| - | + | ||
R(1,1)>=-p2 | R(1,1)>=-p2 | ||
R(1,1)<=p2 | R(1,1)<=p2 | ||
| Line 127: | Line 113: | ||
R(1,2)<=p2 | R(1,2)<=p2 | ||
R(2,4)==R(1,2) | R(2,4)==R(1,2) | ||
| - | + | ||
| - | + | H=W*A_a'+A_a*W-B_a*R-R'*B_a' | |
| - | W | + | |
| - | + | ||
| - | v_H'* | + | W - Epsilon1*eye(2*n) == semidefinite(2*n); |
| + | Epsilon2*eye(2*n) + H == -semidefinite(2*n); | ||
| + | |||
| + | v_H'*H*v_H<=-Epsilon2*eye(4) | ||
cvx_end | cvx_end | ||
end | end | ||
| - | lamda_W=eig(full(W)) | + | lamda_W=min(eig(full(W))) |
| - | lamda_H=eig(H) | + | lamda_H=max(eig(H)) |
| - | v_W=eig(full(W))/ | + | |
| - | v_H=eig(H)/ | + | % v_W=eig(full(W))/max(eig(full(W)))%%Cálculo del normalized eigenvector |
| + | % v_H=eig(H)/max(eig(H)) | ||
%STOP | %STOP | ||
| Line 154: | Line 142: | ||
R | R | ||
W | W | ||
| - | K=R/W | + | K=R/W</pre> |
| - | </pre> | + | |
Revision as of 09:46, 4 February 2009
lamda_W=eig(full(W))
Thanks for the ideas it's great. Thank you very much :D.
I have an answer, how to calculate the normalized eigenvector.
Maybe?[v_W]=eig(full(W))/norm ....
I've changed Epsilon1, Epsilon2, they aren't a variable, I think they are constants.
I'm going to see how to initialice (I'm going to research in the references of my article (Cross fingers)
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))
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=1;
Epsilon2=1;
if(lamda_W>=Epsilon1)
if(lamda_H<=-Epsilon2) para=1
else para = 0
end
else para =0
end
%v_W=eig(W)/(abs(eig(W)))
%v_W=eig(full(W))/abs(full(W))%%normalized eigenvector :|
%v_H=eig(H)/max(eig(H))
while para==0
[v_W,D] = eig(W)
[v_H,D] = eig(H)
if ( Epsilon1 - lamda_W )>(lamda_H+Epsilon2)
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'
W - Epsilon1*eye(2*n) == semidefinite(2*n);
Epsilon2*eye(2*n) + H == -semidefinite(2*n);
v_W'*W*v_W>=Epsilon1*eye(4)
cvx_end
else
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'
W - Epsilon1*eye(2*n) == semidefinite(2*n);
Epsilon2*eye(2*n) + H == -semidefinite(2*n);
v_H'*H*v_H<=-Epsilon2*eye(4)
cvx_end
end
lamda_W=min(eig(full(W)))
lamda_H=max(eig(H))
% v_W=eig(full(W))/max(eig(full(W)))%%Cálculo del normalized eigenvector
% v_H=eig(H)/max(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