Method for choosing the shift c: First compute some power of A, say A^16. Let u be the unit vector obtained by normalizing the first column of A^16. Compute u · Au . Then check to see if |Au − (u · Au)u| < (sigma) (*) where this is our tolerance level. For purposes of this project, take  = 10−8. If (*) is satisfied, great – we have our approximate eigenvector u. If not, shift by c = u · Au, and replace A by (A − cI)−1. (Were this not invertible, c would be an eigenvalue). Now repeat. Since the passage from A to (A − cI)−1 changes only the eigenvalues, and not the eigenvectors, finding an eigenvector u of (A − cI)−1 gives us an eigenvector of A.