Section 7.5.2: Experiment design
m = 10;
angles1 = linspace(3*pi/4,pi,m);
angles2 = linspace(0,-pi/2,m);
V = [3.0*[cos(angles1); sin(angles1)], ...
1.5*[cos(angles2); sin(angles2)]];
p = size(V,2);
n = 2;
noangles = 5000;
cvx_begin
variable lambda(p)
maximize ( det_rootn( V*diag(lambda)*V' ) )
subject to
sum(lambda) == 1;
lambda >= 0;
cvx_end
lambdaD = lambda;
figure(1)
W = inv(V*diag(lambda)*V');
angles = linspace(0,2*pi,noangles);
R = chol(W);
ellipsoid = sqrt(2)*(R\[cos(angles); sin(angles)]);
d = plot(ellipsoid(1,:), ellipsoid(2,:), '--', 0,0,'+');
set(d, 'Color', [0 0.5 0]); set(d(2),'MarkerFaceColor',[0 0.5 0]);
hold on;
dot=plot(V(1,:),V(2,:),'o');
ind = find(lambda > 0.001);
dots = plot(V(1,ind),V(2,ind),'o');
set(dots,'MarkerFaceColor','blue');
disp('Nonzero lambda values for D design:');
for i=1:length(ind)
text(V(1,ind(i)),V(2,ind(i)), ['l',int2str(ind(i))]);
disp(['lambda(',int2str(ind(i)),') = ', num2str(lambda(ind(i)))]);
end;
axis([-5 5 -5 5])
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
hold off, axis off
e = eye(2,2);
cvx_begin sdp
variables lambda(p) u(n)
minimize ( sum(u) )
subject to
for k = 1:n
[ V*diag(lambda)*V' e(:,k);
e(k,:) u(k) ] >= 0;
end
sum(lambda) == 1;
lambda >= 0;
cvx_end
lambdaA = lambda;
figure(2)
W = inv(V*diag(lambda)*V')^2;
mu = diag(V'*W*V);
mu = mean(mu(ind));
angles = linspace(0,2*pi,noangles);
R = chol(W);
ellipsoid = sqrt(mu)*(R\[cos(angles); sin(angles)]);
d = plot(ellipsoid(1,:), ellipsoid(2,:), '--',0,0,'+');
set(d, 'Color', [0 0.5 0]);
set(d(2), 'MarkerFaceColor', [0 0.5 0]);
hold on
dot = plot(V(1,:),V(2,:),'o');
ind = find(lambda > 0.001);
dots = plot(V(1,ind),V(2,ind),'o');
set(dots,'MarkerFaceColor','blue');
disp('Nonzero lambda values for A design:');
for i=1:length(ind)
text(V(1,ind(i)),V(2,ind(i)), ['l',int2str(ind(i))]);
disp(['lambda(',int2str(ind(i)),') = ', num2str(lambda(ind(i)))]);
end;
axis([-5 5 -5 5])
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
axis off, hold off
cvx_begin sdp
variables t lambda(p)
maximize ( t )
subject to
V*diag(lambda)*V' >= t*eye(n,n);
sum(lambda) == 1;
lambda >= 0;
cvx_end
lambdaE = lambda;
figure(3)
mu = diag(V'*W*V);
mu = mean(mu(ind));
angles = linspace(0,2*pi,noangles);
R = chol(W);
ellipsoid = sqrt(mu)*(R\[cos(angles); sin(angles)]);
d = plot(ellipsoid(1,:), ellipsoid(2,:), '--', 0, 0, '+');
set(d, 'Color', [0 0.5 0]);
set(d(2), 'MarkerFaceColor', [0 0.5 0]);
hold on
dot = plot(V(1,:),V(2,:),'o');
lambda = lambda(1:p);
ind = find(lambda > 0.001);
dots = plot(V(1,ind),V(2,ind),'o');
set(dots,'MarkerFaceColor','blue');
disp('Nonzero lambda values for E design:');
for i=1:length(ind)
text(V(1,ind(i)),V(2,ind(i)), ['l',int2str(ind(i))]);
disp(['lambda(',int2str(ind(i)),') = ', num2str(lambda(ind(i)))]);
end;
axis([-5 5 -5 5])
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
axis off, hold off
eta = 6.2514;
W = V*diag(lambdaD)*V';
angles = linspace(0,2*pi,noangles);
R = chol(W);
ellipsoid = sqrt(eta)*(R\[cos(angles); sin(angles)]);
figure(4)
plot(0,0,'ok',ellipsoid(1,:), ellipsoid(2,:), '-');
text(ellipsoid(1,1100),ellipsoid(2,1100),'D');
hold on
W = V*diag(lambdaA)*V';
angles = linspace(0,2*pi,noangles);
R = chol(W);
ellipsoid = sqrt(eta)*(R\[cos(angles); sin(angles)]);
plot(0,0,'ok',ellipsoid(1,:), ellipsoid(2,:), '-');
text(ellipsoid(1,1),ellipsoid(2,1),'A');
W = V*diag(lambdaE)*V';
angles = linspace(0,2*pi,noangles);
R = chol(W);
ellipsoid = sqrt(eta)*(R\[cos(angles); sin(angles)]);
d=plot(0,0,'ok',ellipsoid(1,:), ellipsoid(2,:), '-');
set(d,'Color',[0 0.5 0]);
text(ellipsoid(1,4000),ellipsoid(2,4000),'E');
W_u = inv(V*V'/p);
R = chol(W_u);
ellipsoid_u = sqrt(eta)*(R\[cos(angles); sin(angles)]);
plot(ellipsoid_u(1,:), ellipsoid_u(2,:), '--');
text(ellipsoid_u(1),ellipsoid_u(2),'U');
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
axis off
hold off
Calling SeDuMi: 33 variables (0 free), 10 equality constraints
------------------------------------------------------------------------
SeDuMi 1.1 by AdvOL, 2005 and Jos F. Sturm, 1998, 2001-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 10, order n = 27, dim = 41, blocks = 3
nnz(A) = 91 + 0, nnz(ADA) = 88, nnz(L) = 49
it : b*y gap delta rate t/tP* t/tD* feas cg cg prec
0 : 2.75E+002 0.000
1 : -8.93E-001 7.75E+001 0.000 0.2814 0.9000 0.9000 1.64 1 1 3.2E+001
2 : -1.58E+000 2.57E+001 0.000 0.3321 0.9000 0.9000 1.17 1 1 1.4E+001
3 : -2.52E+000 9.03E+000 0.000 0.3509 0.9000 0.9000 0.61 1 1 5.8E+000
4 : -2.81E+000 3.10E+000 0.000 0.3436 0.9000 0.9000 1.01 1 1 2.0E+000
5 : -3.09E+000 7.85E-001 0.000 0.2531 0.9000 0.9000 0.84 1 1 5.4E-001
6 : -3.18E+000 3.50E-002 0.000 0.0446 0.9900 0.9900 0.98 1 1 2.4E-002
7 : -3.18E+000 8.11E-004 0.000 0.0232 0.9900 0.9900 1.00 1 1 5.6E-004
8 : -3.18E+000 2.94E-005 0.000 0.0362 0.9900 0.9900 1.00 1 1 2.0E-005
9 : -3.18E+000 3.01E-006 0.000 0.1024 0.9064 0.9000 1.00 1 1 2.4E-006
10 : -3.18E+000 3.35E-007 0.045 0.1114 0.9129 0.9000 1.00 1 1 3.4E-007
11 : -3.18E+000 4.38E-008 0.000 0.1306 0.9071 0.9000 1.00 2 2 5.3E-008
12 : -3.18E+000 4.37E-009 0.000 0.0998 0.9000 0.0000 1.00 2 2 1.2E-008
iter seconds digits c*x b*y
12 0.0 Inf -3.1819805111e+000 -3.1819804667e+000
|Ax-b| = 1.1e-008, [Ay-c]_+ = 2.7E-009, |x|= 1.7e+001, |y|= 4.3e+000
Detailed timing (sec)
Pre IPM Post
1.001E-002 1.001E-002 0.000E+000
Max-norms: ||b||=1, ||c|| = 1,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 4319.39.
------------------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +3.18198
Nonzero lambda values for D design:
lambda(1) = 0.50001
lambda(10) = 0.49999
Calling SeDuMi: 32 variables (0 free), 11 equality constraints
------------------------------------------------------------------------
SeDuMi 1.1 by AdvOL, 2005 and Jos F. Sturm, 1998, 2001-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 11, order n = 27, dim = 39, blocks = 3
nnz(A) = 146 + 0, nnz(ADA) = 81, nnz(L) = 46
it : b*y gap delta rate t/tP* t/tD* feas cg cg prec
0 : 2.88E+002 0.000
1 : 5.52E-001 7.08E+001 0.000 0.2457 0.9000 0.9000 1.01 1 1 3.7E+001
2 : 8.89E-001 2.21E+001 0.000 0.3121 0.9000 0.9000 1.44 1 1 9.3E+000
3 : 9.34E-001 7.50E+000 0.000 0.3392 0.9000 0.9000 1.47 1 1 2.5E+000
4 : 9.08E-001 2.75E+000 0.000 0.3662 0.9000 0.9000 1.33 1 1 8.2E-001
5 : 8.68E-001 7.45E-001 0.000 0.2715 0.9000 0.9000 1.04 1 1 2.2E-001
6 : 8.68E-001 1.50E-002 0.319 0.0201 0.9900 0.0000 0.97 1 1 2.0E-002
7 : 8.51E-001 7.40E-004 0.000 0.0493 0.9900 0.9900 0.99 1 1 9.8E-004
8 : 8.50E-001 6.87E-005 0.066 0.0928 0.9069 0.9000 0.99 1 1 1.3E-004
9 : 8.50E-001 3.63E-006 0.173 0.0529 0.9278 0.9000 0.99 1 1 1.6E-005
10 : 8.50E-001 6.37E-007 0.099 0.1754 0.9194 0.9000 1.00 1 1 3.4E-006
11 : 8.50E-001 1.32E-007 0.000 0.2081 0.9057 0.9000 1.00 1 1 7.3E-007
12 : 8.50E-001 2.56E-008 0.000 0.1930 0.7982 0.9000 1.00 1 1 1.4E-007
13 : 8.50E-001 2.03E-009 0.030 0.0794 0.9216 0.9900 1.00 1 1 1.3E-008
iter seconds digits c*x b*y
13 0.1 Inf 8.4952798039e-001 8.4952803828e-001
|Ax-b| = 6.2e-009, [Ay-c]_+ = 8.9E-009, |x|= 8.1e+000, |y|= 1.7e+000
Detailed timing (sec)
Pre IPM Post
1.001E-002 5.007E-002 0.000E+000
Max-norms: ||b||=1, ||c|| = 1,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 19.0554.
------------------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +0.849528
Nonzero lambda values for A design:
lambda(1) = 0.29654
lambda(10) = 0.37799
lambda(20) = 0.32548
Calling SeDuMi: 24 variables (1 free), 4 equality constraints
------------------------------------------------------------------------
SeDuMi 1.1 by AdvOL, 2005 and Jos F. Sturm, 1998, 2001-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
Split 1 free variables
eqs m = 4, order n = 25, dim = 27, blocks = 2
nnz(A) = 85 + 0, nnz(ADA) = 16, nnz(L) = 10
it : b*y gap delta rate t/tP* t/tD* feas cg cg prec
0 : 3.01E+002 0.000
1 : -1.57E+000 7.80E+001 0.000 0.2592 0.9000 0.9000 1.33 1 1 3.8E+001
2 : -1.87E+000 2.17E+001 0.000 0.2783 0.9000 0.9000 1.22 1 1 8.8E+000
3 : -1.77E+000 6.82E+000 0.000 0.3143 0.9000 0.9000 1.48 1 1 2.3E+000
4 : -1.80E+000 3.36E-001 0.000 0.0493 0.9900 0.9900 1.15 1 1 1.0E-001
5 : -1.80E+000 7.85E-005 0.000 0.0002 0.9999 0.9999 1.01 1 1 2.4E-005
6 : -1.80E+000 3.32E-012 0.286 0.0000 1.0000 1.0000 1.00 1 1 3.7E-012
iter seconds digits c*x b*y
6 0.1 Inf -1.8000000000e+000 -1.8000000000e+000
|Ax-b| = 2.7e-012, [Ay-c]_+ = 1.0E-012, |x|= 2.7e+000, |y|= 2.1e+000
Detailed timing (sec)
Pre IPM Post
0.000E+000 5.007E-002 0.000E+000
Max-norms: ||b||=1, ||c|| = 1,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.
------------------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +1.8
Nonzero lambda values for E design:
lambda(10) = 0.2
lambda(20) = 0.8