CVX with eigenvalues constraints


(ahmed) #1

I want to minimize ||AX-B||_2 enforcing eigenvalues of X <1.
How can I do this with CVX?


(Mark L. Stone) #2

lambda_max(X) <= 1

If you really need < 1, then use <=1 with s number a little smaller than 1, such as 1-1e-6.


(ahmed) #3

Thank you for your help,
Is there a solution to a “out of memory” problem with cvx?
(CVX :SDPT3, version:4.0)


(Mark L. Stone) #4

Get more memory.

One other possibility is to use a first order solver, which may require less memory, but may be slower than 2nd order methods. Specifically, SCS https://github.com/cvxgrp/scs under CVX 3.0beta.


(ahmed) #5

Is there an other solution without using lambda_max(X) <= 1?
Can I for example add constraint to each column of X ?


(Mark L. Stone) #6

You can do the equivalent to lambda_max using semidefinite, or norm(X), but I don’t think that makes any difference.

My best suggestion for saving memory while using CVX is what I stated above, to use SCS under CVX 3.0beta.