mxnet.np.linalg.eig

eig(a)

Compute the eigenvalues and right eigenvectors of a square array.

Parameters

a ((.., M, M) ndarray) – Matrices for which the eigenvalues and right eigenvectors will be computed

Returns

  • w ((…, M) ndarray) – The eigenvalues, each repeated according to its multiplicity. The eigenvalues are not necessarily ordered.

  • v ((…, M, M) ndarray) – The normalized (unit “length”) eigenvectors, such that the column v[:,i] is the eigenvector corresponding to the eigenvalue w[i].

Raises

MXNetError – If the eigenvalue computation does not converge.

See also

eigvals()

eigenvalues of a non-symmetric array.

eigh()

eigenvalues and eigenvectors of a real symmetric array.

eigvalsh()

eigenvalues of a real symmetric.

()

This is implemented using the _geev LAPACK routines which compute the eigenvalues and eigenvectors of general square arrays. The number w is an eigenvalue of a if there exists a vector v such that dot(a,v) = w * v. Thus, the arrays a, w, and v satisfy the equations dot(a[:,:], v[:,i]) = w[i] * v[:,i]

for()

math:i \in \{0,…,M-1\}. The array v of eigenvectors may not be of maximum rank, that is, some of the columns may be linearly dependent, although round-off error may obscure that fact. If the eigenvalues are all different, then theoretically the eigenvectors are linearly independent. This function differs from the original numpy.linalg.eig in the following way(s): * Does not support complex input and output.

Examples

>>> from numpy import linalg as LA
>>> a = np.array([[-1.9147992 ,  6.054115  , 18.046988  ],
...               [ 0.77563655, -4.860152  ,  2.1012988 ],
...               [ 2.6083658 ,  2.3705218 ,  0.3192524 ]])
>>> w, v = LA.eig(a)
>>> w
array([ 6.9683027, -7.768063 , -5.655937 ])
>>> v
array([[ 0.90617794,  0.9543622 ,  0.2492316 ],
       [ 0.13086087, -0.04077047, -0.9325615 ],
       [ 0.4021404 , -0.29585576,  0.26117516]])