I would like to efficiently compute all the eigenvalues and eigenvectors of a real matrix A for which the structure is as follows:

$A =\begin{bmatrix} D_1 & C\\C^T & D_2 \end{bmatrix}$ ,

in which $D_1$ is a $n_1 \times n_1$ diagonal matrix with strictly positive elements and $D_2$ is a $n_2 \times n_2$ diagonal matrix with strictly positive elements, and where $C$ is a fully-populated $n_1 \times n_2$ matrix with full rank.

I would like to know if there is a way to exploit the fact that $D_1$ and $D_2$ are diagonal, in order to speed-up the calculation.

For now, I am directly using MATLAB routine eig applied to A:

[V,D] = eig(A)

and it isn't faster than for a fully-populated real symmetric positive-definite matrix of the same size, even for the case $n_1 \ll n_2$ for which $C$ is very thin.

Are you aware of any way to exploit such a structure?

Thanks very much,



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.