Note that there are some explanatory texts on larger screens.

plurals
  1. POPython eigenvectors: differences among numpy.linalg, scipy.linalg and scipy.sparse.linalg
    text
    copied!<p>Scipy and Numpy have between them three different functions for finding eigenvectors for a given square matrix, these are: </p> <ol> <li><a href="http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.eig.html#numpy.linalg.eig"><code>numpy.linalg.eig(a)</code></a></li> <li><a href="http://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.eig.html#scipy.linalg.eig"><code>scipy.linalg.eig(a)</code></a>, and</li> <li><a href="http://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.eigs.html#scipy.sparse.linalg.eigs"><code>scipy.sparse.linalg.eig(A, k)</code></a></li> </ol> <p>Focusing specifically on the situation that all the optional arguments I've left off the last two are left at their defaults and that <code>a</code>/<code>A</code> is real-valued, I am curious about the differences among these three which are ambiguous from the documentation - especially:</p> <ul> <li>Why does (3) have a note that it can't find <em>all</em> eigenvectors? </li> <li>Why <em>must</em> the other two compute all solutions - why don't they take a <code>k</code> argument?</li> <li>(1) has a note saying that the eigenvalues are returned in no particular order; (3) has an optional argument to control the order. Does (2) make any guarantees about this?</li> <li>Does (3) assume that <code>A</code> is sparse? (mathematically speaking, rather than being represented as a scipy sparse matrix) Can it be inefficient, or even give wrong results, if this assumption doesn't hold?</li> <li>Are there other factors I should consider when choosing among these?</li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload