[Math] Rank-one update of eigenvalues

eigenvalues-eigenvectorslinear algebramatrix-rank

Let $\lambda_1,\dots,\lambda_n$ be the eigenvalues of the square and symmetric $n\times n$ real matrix $A$. Consider a rank-one perturbation $B=A+uu^T$, where $u$ is a real $n$-vector.

Is there an analytical expression for the eigenvalues of $B$, exploiting the known eigenvalues of $A$? I'm thinking something similar to the Sherman-Woodbury formula for the update of the inverse could work, but I have not succeeded.

I found some related results: https://en.wikipedia.org/wiki/Bunch%E2%80%93Nielsen%E2%80%93Sorensen_formula, and also https://doi.org/10.1137%2FS089547989223924X. But both seem to require that $u$ is an eigenvector of $A$. Here I am considering a more general statement, where $u$ need not be an eigenvector of $A$>

Best Answer

I doubt there is an analytic expression for all but the smallest matrix dimensions. However, there is an inexpensive way to compute the eigenvalues of rank-one update. The following comes from Demmel's Applied Numerical Linear Algebra subsection 5.3.3.

For any symmetric matrix $\mathbf{A}$, we can use the eigendecomposition $\mathbf{A} = \mathbf{V}^\top \text{diag}(\mathbf{d})\mathbf{V}$ to determine the eigenvalues of $\mathbf{B} = \mathbf{A} + \rho \mathbf{u}\mathbf{u}^\top$ as equivalently the eigenvalues of a diagonal plus rank-one matrix $\mathbf{V}\mathbf{B}\mathbf{V}^\top = \text{diag}(\mathbf{d}) + \rho (\mathbf{V}\mathbf{u})(\mathbf{V}\mathbf{u})^\top$. We can then compute the eigenvalues through the roots of the determinant $\det(\mathbf{B}- \lambda \mathbf{I})$; in particular, if $\lambda$ is not an eigenvalue of $\mathbf{A}$ we have $$ \det(\mathbf{B} - \lambda \mathbf{I}) = \det(\mathbf{A} + \rho \mathbf{u}\mathbf{u}^\top -\lambda \mathbf{I}) = \det(\mathbf{A} - \lambda \mathbf{I})\left[1+ \rho \sum_i \frac{(\mathbf{e}_i^\top \mathbf{V}\mathbf{u})^2 }{d_{i} -\lambda} \right] $$ where $d_{i}$ are the original eigenvalues of $\mathbf{A}$ and $\mathbf{e}_i$ is the $i$th column of the identity matrix (cf. eq. (5.14)). This bracketed term is called the secular equation and its roots are the eigenvalues of $\mathbf{B}$. Finding these roots can be challenging numerically, but a robust algorithm is implemented in LAPACK in xLAED4.

Related Question