0

I have a really tricky optimization problem to run in Matlab, and I hope somebody could help.

I have a NxN matrix M (which is symmetric and dense, it is a correlation matrix if this helps) which is uncertain but bounded (Mmin < M < Mmax), and I know the bounds.

I have to consider the last n eigenvalues (so, having all the N eigenvalues of the matrix, I discard the (N-n) bigger ones).

What I need is to run two constrained optimization problems to find the two sets of this n eigenvalues within all the possible matrices M, Mmin < M < Mmax, which respectively, maximize and minimize the values of all the n eigenvalues (i.e. the set of n eigenvalues, discarding the N-n bigger ones, for which each eigenvalue is as large/small as possible). I know that this can be done with some special kind of genetic algorithm considering that the eigenvalues are real.

The problem is that my matrix is something like 2000x2000 and I discard the 4 biggest eigenvalues, so I would like to build some kind of computationally efficient code.

Any suggestions on how to make this would be really appreciated. Thanks in advance

J.

J. Marr
  • 19
  • 1
  • How do you decide that a set of eigenvalues is bigger than another one? (There are several possible answers to that, choose one) – BillBokeey May 20 '16 at 10:57
  • I mean, for each eigenvalue separately I want to find the biggest value it can take considering every possible configuration of the matrix: for example, which is the biggest value that eigenvalue n. 7 can ever take ? And the biggest value n. 8 can ever take ? And so on.. – J. Marr May 20 '16 at 13:28
  • When you say that the matrix M is bounded, do you have a general bound for every component in your matrix? If so, I think that indeed a genetic algorithm of minimization can be used, and that will always be more efficient than a grid search – BillBokeey May 20 '16 at 20:27

0 Answers0