Let's calculate the eigenvalues of a matrix. Perform the following steps to do so:
A = np.mat("3 -2;1 0") print "A ", A
The matrix we created looks like the following:
A [[ 3 -2] [ 1 0]]
eig
function.print "Eigenvalues", np.linalg.eigvals(A)
The eigenvalues of the matrix are as follows:
Eigenvalues [ 2. 1.]
eig
function. This function returns a tuple, where the first element contains eigenvalues and the second element contains corresponding Eigenvectors, arranged column-wise.eigenvalues, eigenvectors = np.linalg.eig(A) print "First tuple of eig", eigenvalues print "Second tuple of eig ", eigenvectors
The eigenvalues and eigenvectors will be shown as follows:
First tuple of eig [ 2. 1.] Second tuple of eig [[ 0.89442719 0.70710678] [ 0.4472136 0.70710678]]
dot
function by calculating the right- and left-hand sides of the eigenvalues
equation Ax = ax.for i in range(len(eigenvalues)): print "Left", np.dot(A, eigenvectors[:,i]) print "Right", eigenvalues[i] * eigenvectors[:,i] print
The output is as follows:
Left [[ 1.78885438] [ 0.89442719]] Right [[ 1.78885438] [ 0.89442719]] Left [[ 0.70710678] [ 0.70710678]] Right [[ 0.70710678] [ 0.70710678]]
We found the
eigenvalues and eigenvectors of a matrix with the eigvals
and eig
functions of the numpy.linalg
module. We checked the result using the dot
function (see eigenvalues.py
).
import numpy as np A = np.mat("3 -2;1 0") print "A ", A print "Eigenvalues", np.linalg.eigvals(A) eigenvalues, eigenvectors = np.linalg.eig(A) print "First tuple of eig", eigenvalues print "Second tuple of eig ", eigenvectors for i in range(len(eigenvalues)): print "Left", np.dot(A, eigenvectors[:,i]) print "Right", eigenvalues[i] * eigenvectors[:,i] print