Fast rank-n update of root matrix?

52 Views Asked by At

Say $S_1$ is a square matrix of dimension and rank $n$ (it has no other special properties).

Say $S_q$ is diagonal of rank $n$.

I'm trying to efficiently obtain / compute any matrix $S_2$ that would verify

$$S_2^TS_2=S_1^TS_1+S_q^2$$

I know I can use a qr algorithm on the vertical concatenation of $S_1$ and $S_q$ (or $n$ cholupdate calls...), but I'm interested if there is a more efficient way - exploiting the diagonality of $S_q$, and since I am not requiring $S_2$ to have any other special properties (it's ok if it is not triangular), so don't really need a QR decomposition.

I have tried formulating $S_2$ as $S_1+\Delta$, that is

$$(S_1+\Delta)^T(S_1+\Delta)=S_1^TS_1+S_q^2$$

and thus I can obtain

$$A+A^T=S_q^2$$

where $A=\Delta^T(\frac{1}{2}\Delta+S_1)$.

But I'm unsure how to go from there (that is, easily isolating $\Delta$), or if that is a relevant path to get to a solution.