A fast way to solve vector equations with matrix $A = V D_k V^T$ for various $D_k$?

45 Views Asked by At

I am numerically studying a class of matrices $A$, size $n \times n$, that are singular, but can easily be decomposed into $$A = V D_k V^T,$$ where $D_k$ is a (non-singular) square, diagonal matrix of size $m \times m$ with only positive elements, and $V$ is a matrix of size $n \times m$. We have $n < m$ and $A$ has rank $n - 1$.

I am studying this for a fixed matrix $V$, for instance

V = [[-1, -1,  0, -1,  0,  0,  0,  0],
     [ 1,  0, -1,  0,  0, -1,  0,  0],
     [ 0,  1,  1,  0, -1,  0, -1,  0],
     [ 0,  0,  0,  1,  1,  0,  0, -1],
     [ 0,  0,  0,  0,  0,  1,  1,  1]]

but for lots of different $D_k$, and am trying to solve $$ \arg \min_x ||A x - b||^2$$ for various $b$.

Are there any precomputations of $V$ that would be helpful in solving these kind of equations for various $D_k$?

Had it been an SVD decomposition, it would immediately give the answer to the equation.