Generalized Eigenvalue Problem from linear stability analysis

I also posted this in the physics forum, but maybe here it fits better. I am trying to solve a generalized eigenvalue problem raised by linear stability analysis $$AV=\lambda BV.$$ $A$ and $B$ are non-symmetric complex valued matrices. The set of equations I am trying to solve are linearized flow,thermal,solutal fields.(I end up with 3 ODE equations, 4th order for the flow, 2nd order for both thermal and solutal) The system is nondimentionalized, and discretized using 2nd order central finite element method in to $N$ nodes. Then $A$ is the discretized linear operator for my u,T,C, respectively. However, this leads to an order of $N^4$ for some of the terms in $A$, order $N^2$ for $B$. In addition to that, the wave number from the linear stability analysis also introduce some large number to $A$. The order of magnitude of $A$ and $B$ is really different. I am using LAPACK solver (ZGGEV) to solve the problem and the eigenvalues I am getting ranges from +/-$10^6$ to $10^2$. I am wondering if there is a way to scale the problem/eigenvalue such that the information can be interpreted? Any recommendation/thoughts would be really appreciated.

• If your matrices are non symmetric and complex there us no guarantee that your eigenvalues are positive/negative, not even real. If you show your equations you might obtain more help. – nicoguaro May 4 '16 at 17:17

1 Answer

This isn't an uncommon problem to have. You might consider using different mesh spacing for different variables/derivatives or a staggered method to alleviate the poor conditioning.

Better yet, if your eigenvalues are all within four orders of magnitude, the problem really isn't that bad. I suspect the LAPACK solution (if you used double precision) is correct, though you should verify this yourself. Other methods are available for these poorly conditioned problems and the QR methods LAPACK uses aren't especially useful if you're only looking for a few eigenvalues and vectors. Consider ARPACK or SLEPc if this is the case.

Note: be wary of spurious eigenvalues in these types of problems! These can often arise during the implementation of boundary conditions.