Specifying a matrix via eigendecomposition

linear algebramatricesmatrix decomposition

I'm using a Python library where I can specify a matrix by its eigendecomposition. It accepts $r$ eigenvectors of dimension $n$ ($r\leq n$) and $r$ corresponding eigenvalues, and outputs a matrix of dimension $n$. It does this by the following procedure:

  1. Arrange the r eigenvectors in a matrix of dimension $n\times r$ (so that the eigenvectors are columns) and then multiply each column of the resulting matrix by that eigenvector's associated eigenvalue

  2. Multiply the result of step 1 by the transpose of the original $n\times r$ matrix of eigenvectors in order to get an $n\times n$ matrix as a result.

I have not seen this matrix decomposition before. I attempted to calculate a test example where I "decomposed" a random matrix according to this procedure, and it definitely didn't give me the original matrix back.

What is this procedure known as and what are its properties and its properties of the resulting matrix?

Best Answer

In general, suppose that we have an $n \times r$ matrix $$ V = \pmatrix{v_1 & \cdots & v_r} $$ where the vectors $v_1,\dots,v_r$ and eigenvalues $\lambda_1,\dots,\lambda_r$. Then the matrix $$ M = V\pmatrix{\lambda_1 \\ & \ddots \\ && \lambda_r} V^T = \lambda_1 v_1v_1^T + \cdots + \lambda_r v_rv_r^T $$ is a symmetric matrix with eigenvalues $\lambda_1,\dots,\lambda_r$ and associated eigenvectors $v_1,\dots,v_r$. The remaining eigenvalues of $M$ are equal to $0$.

Note: the product $$ V\pmatrix{\lambda_1 \\ & \ddots \\ && \lambda_r} $$ multiplies the $i$th column of $V$ by $\lambda_i$ for $i=1,\dots,r$.

Related Question