Help! How to judge whether there is more than one eigenvalue of a matrix?

14 views
Skip to first unread message

Ricardo May

unread,
Sep 28, 2015, 12:30:25 PM9/28/15
to YALMIP
hello, everyone!
I am going on a problem, I have defined a decision variable W = sdpvar(4,4,'full') but I have a constraint that there is at least one eigenvalue of the matrix I defined, but I eventually failed to accomplish it using some matlab function such as find(eig(W)<0), and some looking-like function, which outputs these functions are nor defined for the decision variables.
Pls help me!

Johan Löfberg

unread,
Sep 28, 2015, 1:26:50 PM9/28/15
to yal...@googlegroups.com
I guess you mean one *non-zero* eigenvalue. That is a nasty non-convex set, and there is no easy fix. Definitely not semidefinite programming (which only reasons with eigenvalues of symmetric matrices anyway). You will not be able to use a construct using the combinatoric find operator either

A brute-force way to represent the constraint is to simply use the definition of eigenvalue and hope for the best when you throw the problem on a local nonlinear solver etc

v=sdpvar(4,1);
lambda = sdpvar()1);
Model = [A*v=lambda*v,v'*v==1,lambda <=-mydefinitionofsmallbutnotzerowithrespecttosolvertolerances]




Reply all
Reply to author
Forward
0 new messages