Time for action – determining eigenvalues and eigenvectors

Let's calculate the eigenvalues of a matrix:

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

    The matrix we created looks like the following:

    A
    [[ 3 -2]
     [ 1  0]]
    
  2. Call the eigvals() 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 appear 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 side of the eigenvalues equation Ax = ax:
    for i, eigenvalue in enumerate(eigenvalues):
          print("Left", np.dot(A, eigenvectors[:,i]))
          print("Right", eigenvalue * eigenvectors[:,i])
          print()

    The output is as follows:

    Left [[ 1.78885438]
     [ 0.89442719]]
    Right [[ 1.78885438]
     [ 0.89442719]]
    

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):

from __future__ import print_function
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, eigenvalue in enumerate(eigenvalues):
      print("Left", np.dot(A, eigenvectors[:,i]))
      print("Right", eigenvalue * 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