Given a symmetric $n\times n$ matrix matrix and $m$ of the eigenvalue/vector pairs, is there an efficient and numerically stable way to factor out the known structure such that only a smaller $(n-m)\times (n-m)$ problem needs to be solved to get the full set of eigenvalues/vectors ? The known eigenvalues are all zero, so the corresponding eigenvectors span the kernel of the matrix.
$\begingroup$
$\endgroup$
3
-
2$\begingroup$ Assuming that you've got the complete kernel and the matrix is real, the other eigenvectors span the orthogonal complement of the kernel. Complete the given eigenvectors to a basis of the whole space (e.g., by including suitable elementary vectors) and orthogonalize it using Gram–Schmidt. Switch to the new basis, you'll get an $(n-m)\times(n-m)$ matrix (and a lot of zeros). $\endgroup$– Emil JeřábekMar 4, 2011 at 17:20
-
$\begingroup$ I've thought about this solution, but Gram-Schmidt is not numerically most stable method, so I was hoping for something better. $\endgroup$– Rasmus TamstorfMar 6, 2011 at 0:47
-
1$\begingroup$ You can replace Gram-Schmidt with a QR factorization, computed via one of the "usual" methods (Householder reflections or Givens transformation). $\endgroup$– Federico PoloniMar 15, 2011 at 22:21
Add a comment
|
1 Answer
$\begingroup$
$\endgroup$
If you already know that all the known eigenvalues of your matrix are zero, it might prove profitable to reduce your original symmetric matrix to tridiagonal form; the nice thing about reducing your matrix to tridiagonal form is that your matrix splits into smaller submatrices if your original matrix had repeated eigenvalues to begin with.