[Numpy-discussion] One question about the numpy.linalg.eig() routine

Matthew Brett matthew.brett@gmail....
Mon Apr 2 20:53:57 CDT 2012


Hi,

On Mon, Apr 2, 2012 at 5:38 PM, Val Kalatsky <kalatsky@gmail.com> wrote:
> Both results are correct.
> There are 2 factors that make the results look different:
> 1) The order: the 2nd eigenvector of the numpy solution corresponds to the
> 1st eigenvector of your solution,
> note that the vectors are written in columns.
> 2) The phase: an eigenvector can be multiplied by an arbitrary phase factor
> with absolute value = 1.
> As you can see this factor is -1 for the 2nd eigenvector
> and -0.99887305445887753-0.047461785427773337j for the other one.

Thanks for this answer; for my own benefit:

Definition: A . v = L . v  where A is the input matrix, L is an
eigenvalue of A and v is an eigenvector of A.

http://en.wikipedia.org/wiki/Eigendecomposition_of_a_matrix

In [63]: A = [[0.6+0.0j,
-1.97537668-0.09386068j],[-1.97537668+0.09386068j, -0.6+0.0j]]

In [64]: L, v = np.linalg.eig(A)

In [66]: np.allclose(np.dot(A, v), L * v)
Out[66]: True

Best,

Matthew


More information about the NumPy-Discussion mailing list