Hi there,
I have this piece of code. I want to put a threshold on the maximum eigenvalue of a matrix which is constructed based on decision variables of the optimization problem. But, it seems that Lambda_max(.) doesn’t work correctly. After solving the problem, when I check the maximum of eigenvalue, it’s 129, which is much greater than my threshold of 10.
I have to mention that the problem is feasible and if I put some wisely extra constraints on the decision variables, I can reach the desired maximum eigenvalue for example something around 5. Could please let me know what can be the problem?
The code:
%% Optimization problem
n=18;
cvx_begin quiet
cvx_solver mosek;
cvx_precision best
variable x(n)
minimize(x(16))
subject to
B * x >= 0;
B0 * x <= (1 + x(16)) * I0;
B2 * x >= (x(17) - x(16)) * I2;
-(EBF - B) * x + (x(16) + x(18) + Delta)*I >= 0;
x(16) + x(17) >= (1 + x(18)*Td)/(deltaa);
x(16) + eps <= 0;
PP = [x(1),x(9)/2,x(10)/2,x(11)/2,x(5)/2;x(9)/2,x(2),x(12)/2,x(13)/2,x(6)/2;x(10)/2,x(12)/2,x(3),x(14)/2,x(7)/2;x(11)/2,x(13)/2,x(14)/2,x(4),x(8)/2;x(5)/2,x(6)/2,x(7)/2,x(8)/2,x(15)];
lambda_max(PP) <= 10;
cvx_end
You could also find the optimization part of the code here: