Time for action – determining eigenvalues and eigenvectors

Let's calculate the eigenvalues of a matrix. Perform the following steps to do so:

  1. Create a matrix as follows:
    A = np.mat("3 -2;1 0")
    print "A
    ", A

    The matrix we created looks like the following:

    A
    [[ 3 -2]
     [ 1  0]]
    
  2. Calculate eigenvalues by calling the eig function.
    print "Eigenvalues", np.linalg.eigvals(A)

    The eigenvalues of the matrix are as follows:

    Eigenvalues [ 2.  1.]
    
  3. Determine eigenvalues and eigenvectors with the 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]]
    
  4. Check the result with the 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]]
    

What just happened?

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
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset