SimTk/msmbuilder — pull request #322 by rmcgibbo (2014-02-04 00:18:05+00:00)
Title:  More stable eigensolver for reversible transition matrices

From the preface of [Numerical Methods for Large Eigenvalue Problems](http://www-users.cs.umn.edu/~saad/eig_book_2ndEd.pdf), page xv
> In essence what differentiates the Hermitian from the non-Hermitian eigenvalue
problem is that in the first case we can always manage to compute an approxi-
mation whereas there are nonsymmetric problems that can be arbitrarily difficult
to solve and can essentially make any algorithm fail. Stated more rigorously, the
eigenvalue of a Hermitian matrix is always well-conditioned whereas this is not
true for nonsymmetric matrices.

Therefore, my _guess_ is that this method (which uses the Hermetian eigensolver for
reversible transition matrices) might be more stable than the existing function in MSMLib
for arbitrary transition matrices, which uses the general eigensolver. I don't actually have
any real evidence for this though -- I haven't tried it on any of the matrices that choke with
`scipy.sparse.linalg.eigs`.

re #307, #311

This is a new copy of the PR, onto master, with https://github.com/SimTk/msmbuilder/pull/311#issuecomment-33724159 taken into account.