2
$\begingroup$

I have a huge covariance matrix, 𝑀, with the dimension, e.g., $10^8 \times 10^8$. Luckily enough, the number of nonzero eigenpairs, $n$, is very small, i.e., $n<5$. From the computational prospective, I would like to represent, $M$, in Schmidt decompsition as $$ 𝑀= \sum_{i=1}^n \lambda_i {\bf e}_i^T \otimes {\bf e}_i, $$ where $\lambda_i$ and ${\bf e}_i$ are the nonzero eigenvalues and eigenvectors of $M$. This equation can be further written as $$ 𝑀= \sum_{i=1}^n {\bf g}_i^T \otimes {\bf g}_i, $$ where the vectors ${\bf g}_i=\sqrt{\lambda_i}{\bf e}_i$. Using this relation, the matrix, $M$, can be stored in terms of nonzero ${\bf g}_i$ in computer.

My problem is that the matrix, 𝑀, is changing at every time snapshot. The update of the matrix, 𝑀, is given by the following formular, $$ 𝑀′= \sum_{i=1}^n {\bf g}_i^T \otimes ({\bf g}_i+ \delta {\bf g}_i)+({\bf g}_i+ \delta {\bf g}_i)^T \otimes {\bf g}_i $$ where $\delta {\bf g}_i$ is the update of the $i$th vector and is small comparing with ${\bf g}_i$. Due to some dynamical properties/constraints, the updated covariance matrix, $M'$, contains the same number of nonzero eigenpairs, $n$.

I wonder whether there is a fast algorithm for computing the new nonzero eigenpairs?

Many thanks in advance!

$\endgroup$
3

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.