Section 4.5.4: Minimum spectral radius via Peron-Frobenius theory (GP)
c_nom = [1 1]';
b_nom = [2 3 2 1]';
alpha = [1 1 1 1]'; beta = [1 1 1 1]';
s_nom = [1 1 3]';
gamma = [1 1 1]'; delta = [1 1 1]';
cvx_begin gp
variables lambda b(4) s(3) v(4) c(2)
minimize( lambda )
subject to
b'*v <= lambda*v(1);
s(1)*v(1) <= lambda*v(2);
s(2)*v(2) <= lambda*v(3);
s(3)*v(3) <= lambda*v(4);
[0.5; 0.5] <= c; c <= [2; 2];
b == b_nom.*((ones(4,1)*(c(1)/c_nom(1))).^alpha).*...
((ones(4,1)*(c(2)/c_nom(2))).^beta);
s == s_nom.*((ones(3,1)*(c(1)/c_nom(1))).^gamma).*...
((ones(3,1)*(c(2)/c_nom(2))).^delta);
cvx_end
disp(' ')
if lambda < 1
fprintf(1,'The fastest decay rate of the bacteria population is %3.2f.\n', lambda);
else
fprintf(1,'The slowest growth rate of the bacteria population is %3.2f.\n', lambda);
end
disp(' ')
fprintf(1,'The concentration of chemical 1 achieving this result is %3.2f.\n', c(1));
fprintf(1,'The concentration of chemical 2 achieving this result is %3.2f.\n', c(2));
disp(' ')
A = zeros(4,4);
A(1,:) = b';
A(2,1) = s(1);
A(3,2) = s(2);
A(4,3) = s(3);
disp('Eigenvalues of matrix A are: ')
eigA = eig(A)
Calling SeDuMi: 87 variables (5 free), 48 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 5 free variables
eqs m = 48, order n = 48, dim = 138, blocks = 4
nnz(A) = 184 + 0, nnz(ADA) = 586, nnz(L) = 325
it : b*y gap delta rate t/tP* t/tD* feas cg cg prec
0 : 1.30E+000 0.000
1 : 2.95E-001 3.78E-001 0.000 0.2904 0.9000 0.9000 2.33 1 1 2.6E+000
2 : 1.93E-001 1.15E-001 0.000 0.3052 0.9000 0.9000 2.14 1 1 6.0E-001
3 : -1.44E-001 3.62E-002 0.000 0.3135 0.9000 0.9000 1.24 1 1 2.3E-001
4 : -1.84E-001 1.22E-002 0.000 0.3359 0.9000 0.9000 1.10 1 1 6.8E-002
5 : -2.04E-001 4.19E-003 0.000 0.3444 0.9000 0.9000 1.09 1 1 2.2E-002
6 : -2.13E-001 1.22E-003 0.000 0.2920 0.9000 0.9000 1.09 1 1 6.1E-003
7 : -2.18E-001 8.24E-005 0.000 0.0673 0.9900 0.9900 1.10 1 1 3.9E-004
8 : -2.18E-001 6.40E-006 0.000 0.0777 0.9900 0.9900 1.06 1 1 2.9E-005
9 : -2.18E-001 1.16E-006 0.074 0.1818 0.9000 0.9000 1.01 1 1 5.3E-006
10 : -2.18E-001 1.06E-007 0.490 0.0915 0.9000 0.0000 1.00 1 2 1.3E-006
11 : -2.18E-001 4.35E-009 0.000 0.0409 0.9903 0.9900 1.00 2 2 6.0E-008
12 : -2.18E-001 8.75E-011 0.037 0.0201 0.9900 0.9902 1.00 3 4 1.2E-009
iter seconds digits c*x b*y
12 0.1 Inf -2.1798542256e-001 -2.1798542227e-001
|Ax-b| = 2.8e-009, [Ay-c]_+ = 3.2E-010, |x|= 9.4e+000, |y|= 2.6e+000
Detailed timing (sec)
Pre IPM Post
0.000E+000 1.001E-001 0.000E+000
Max-norms: ||b||=4.380570e+000, ||c|| = 1,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 72.379.
------------------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +0.804137
The fastest decay rate of the bacteria population is 0.80.
The concentration of chemical 1 achieving this result is 0.50.
The concentration of chemical 2 achieving this result is 0.50.
Eigenvalues of matrix A are:
eigA =
0.8041
-0.2841
-0.0100 + 0.2263i
-0.0100 - 0.2263i