Does QR algorithm also provide easy way to obtain eigenvectors? The numerical QR algorithm with sufficient number of iterations gives us approximations of all the eigenvalues of a matrice.
My question is, is there an easy "companion" computation while using the QR algorithm for finding the corresponding eigenvectors of those eigenvalues, or do we need to manually solve each individual systems of simultaneous equations for each of the obtained eigenvalue in order to obtain its corresponding eigenvector?
Thank you.
 A: The QR Algorithm (and its "shifted" variants) provide a Schur decomposition of the matrix of interest. That is, for the input matrix $A$, the algorithm (if it converges) finds a unitary matrix $Q$ and upper triangular matrix $U$ (both with complex number entries) such that $A = QUQ^*$ ($Q^*$ denotes the conjugate-transpose of $Q$).
From there, finding the eigenvectors is relatively easy. The eigenvalues of $A$ are given as the diagonal entries of $U$, and solving for the eigenvector associated with a given eigenvalue $\lambda$ amounts to solving the linear system $(U - \lambda I) x = 0$: for such a vector $x$, $Qx$ is an eigenvector of $A$ associated with the eigenvalue $\lambda$. Because $(U - \lambda I)$ is upper triangular, this system of equations can be solved relatively quickly (see this post, for instance, for a discussion).
If the matrix $A$ is normal (i.e. $AA^* = A^*A$), then the matrix $U$ will necessarily be diagonal (up to numerical precision, assuming that the algorithm converged) which means that the eigenvectors of $A$ are simply the columns of $Q$.
