[37] | 1 | clear all |
---|
| 2 | |
---|
| 3 | yalmip('clear') |
---|
| 4 | alfa=1; |
---|
| 5 | n = 6; |
---|
| 6 | |
---|
| 7 | load Q.mat |
---|
| 8 | w = -0.5; |
---|
| 9 | Qg = frsp(Qde,10^w); |
---|
| 10 | M0 = Qg(1:length(Qg)-1,1:length(Qg)-1); |
---|
| 11 | |
---|
| 12 | d1 = sdpvar(1,1); d2 = sdpvar(1,1); d3 = sdpvar(1,1); d4 = sdpvar(1,1); d5 = sdpvar(1,1); |
---|
| 13 | d = diag([d1 d2 d3 d4 d5 d5]); |
---|
| 14 | |
---|
| 15 | h1 = sdpvar(1,1); h2 = sdpvar(1,1); h3 = sdpvar(1,1); h4 = sdpvar(1,1); |
---|
| 16 | h = diag([h1 h2 h3 h4 0 0]); |
---|
| 17 | |
---|
| 18 | o = zeros(2*n,2*n); |
---|
| 19 | I = eye(2*n); |
---|
| 20 | |
---|
| 21 | M1 = real(M0); M2 = imag(M0); |
---|
| 22 | M = [M1 M2; -M2 M1]; |
---|
| 23 | jM = [-M2 M1;-M1 -M2]; |
---|
| 24 | |
---|
| 25 | % Define D & increase size to account for complex numbers |
---|
| 26 | D1 = d; D2 = zeros(n,n); |
---|
| 27 | D = [D1 D2; -D2 D1]; |
---|
| 28 | |
---|
| 29 | % Define H such that G=D'H and increase size to account for complex numbers |
---|
| 30 | H1 = h; H2 = zeros(n,n); |
---|
| 31 | H = [H1 H2; -H2 H1]; |
---|
| 32 | jH = [-H2 H1;-H1 -H2]; |
---|
| 33 | |
---|
| 34 | W = [ I D*M-jH o o; |
---|
| 35 | M'*D'+jH' o alfa*D' H'; |
---|
| 36 | o alfa*D -I o; |
---|
| 37 | o H o -I]; |
---|
| 38 | |
---|
| 39 | Y = sdpvar(8*n,8*n,'symmetric'); |
---|
| 40 | Z = sdpvar(8*n,8*n,'symmetric'); |
---|
| 41 | |
---|
| 42 | L = lmi(d-1e-3); |
---|
| 43 | L = addlmi(L,[Y W;W' Z]); |
---|
| 44 | |
---|
| 45 | objective = trace(Y)+trace(Z); |
---|
| 46 | |
---|
| 47 | options = sdpsettings('Solver','sedumi','sedumi.maxiter',2); |
---|
| 48 | options.sedumi.alg = 2; |
---|
| 49 | options.sedumi.theta = 0.5; |
---|
| 50 | options.sedumi.beta = 0.5; |
---|
| 51 | options.sedumi.eps = 1e-3; |
---|
| 52 | |
---|
| 53 | solution = solvesdp(L,[],objective,options); |
---|
| 54 | |
---|
| 55 | W = double(W); |
---|
| 56 | D = double(D); |
---|
| 57 | D = D(1:n,1:n); |
---|
| 58 | H = double(H); |
---|
| 59 | H = H(1:n,1:n); |
---|
| 60 | M = M1+j*M2; |
---|
| 61 | G = D'*H; |
---|
| 62 | |
---|
| 63 | MM = M'*D*M+j*(G*M-M'*G)-alfa*D; |
---|
| 64 | |
---|
| 65 | lambda = eig(MM); |
---|