Eigenvector of a variable matrix


(ciel bleu) #1

how can i calculate and use eigenvector of a variable matrix in my cvx optimization code?
like the one for min or max eigenvalue inequality.

Best Regards,


(Mark L. Stone) #3

I believe eignevectors would be a non-convex function of a matrix. Perhaps there is some special case where the mathematics works out to allow such a formulation, but not that I know of. You can of course use MATLAB to compute eigenvectors for any optimal matrix returned by CVX, after CVX execution has concluded.

You do not seem to be taking my advice to heart about first determining whether your optimization problem is convex before attempting to use CVX. I recommend you do so.


(ciel bleu) #4

Thanks for answering. Actually I have series of solved covex optimizations and I need to add new constraints. I am trying to find a way to add final constraint and clearly failing to do so :slight_smile:


(Mark L. Stone) #5

If the additional constraint is not convex, then you can not add it to CVX unless you can figure out a way to use binary or integer variables to handle the non-convexity, and therefore use CVX’s MIDCP capability.


(ciel bleu) #6

yes, I learned about mixed integer programming in sparse control course. actually I’m still struggling to prove norm(AA’-A’A) is convex overall. It would be a great help if you could let me know why you say it is non-convex or give me the counter example.


(Mark L. Stone) #7

Well, norm(A*A’-A’*A) is (trivially) convex in one dimension. In higher dimensions,. no. Compute the Hessian when A is 2 by 2, and I think you will see (if you don’t make any mistakes). And that is so regardless of which norm is used.


(ciel bleu) #8

calculated hessian it is non-convex.