Generalized eigenvalue problem


(palas) #1

Is there any way to solve generalized eigenvalue problem in CVX?


(Mark L. Stone) #2

If you are just trying to “solve” the generalized eigenvalue problem, use the form of MATLAB’s eig with two input arguments eig(A,B). This does not involve CVX.

If you wish to “involve” CVX in the process, you can put cvx_begin before eig and cvx_end after eig. Then in some meaningless sense, you can say the problem was solved “in” CVX.

Do you have something specific you are trying to accomplish? Do you have a real problem you are trying to solve, or is this for a school assignment?


(palas) #3

I am trying to solve the following problem
minimize \lambda
subject to
XA+A’X < 2*\lambda*X
X > 0

Where X and \lambda are unknown.
I can solve this problem in LMI toolbox using gevp solver. I want to solve this problem in CVX toolbox.


(Mark L. Stone) #4

Your problem is quasi-convex, so you can use the bisection method described in section 4.2.5 “Quasiconvex optimization” of Boyd and Vandenberghe “Convex Optimization” https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf . CVX can be used to solve the LMIs within the bisection algorithm.

Strict inequalities will be interpreted as non-strict inequalities, so because of the homogeneity, you’ll need to do something to prevent X = zero matrix from occurring as a solution (with any lamnda) So, as one way of doing so, force X to be positive definite, such as X - eye(size(x)) == semidefinite(size(X)). That won’t affect optimal lambda.