Hi everyone, I met a very bizarre situation when I use lambda_max function. It seems that the result of lambda_max is totally different from the result of max(eig()). The code I used is as following
A1 = [-10 2;1 -14]; A2 = [-8 1;3 -20]; cvx_begin sdp cvx_precision high variable P(2,2) symmetric P*A1+A1'*P <= -1e-3*eye(2,2) P*A2+A2'*P <= -1e-3*eye(2,2) P >= 1e-3*eye(2,2) beta = max([lambda_max(P*A1 + A1'*P) lambda_max(P*A2+A2'*P)]) cvx_end disp(beta); disp( max([max(eig(P*A1 + A1'*P)) max(eig(P*A2 + A2'*P))]) );
I have tried all the solvers I have, which are SDPT2, SeDuMi, Mosek and Mosek_2. All the results seem abnormal, which means that “lambda_max” get a different result from “max(eig())”.
The two results I get by using Mosek_2 solver are
Thanks for any help in advance!