I needed to solve a generalized positive defined eigenvalue problem of the form AX=B lambda X, where A and B are real and symmetric. For that I was going to use DSYGV routine. I prepared all the necessary entities and checked if matrix B is positive-defined by diagonalizing it with a standard eigenvalue solver, namely the DSYEVX routine. The eigenvalue were all positive and not small. But solving the eigenvalue problem with the DSYGV threw an error message saying that 2nd leading minor of B is not positive-definite. Then I adopted for solution the following:
- first, used Cholesky decomposition routine DPOTRF
- second used DSYGST routine to reduce the generalized eigenvalue problem to the standard one
- at last, solved the the standard eigenvalue problem with the mentioned above solver DSYEVX.
This way it worked and the result was correct!
I wonder why the generalized routine did not work. Did someone have a similar experience?
I can also add that when I supplied my matrices to the generalized eigensolver for the nonsymmetric matrices, the DGGEV routine, the result was a complex spectrum.
Thanks a lot in advance, who can help or comment on that.