I have $$S = QLQ^T$$

I know $Q$, $L$, $Q^T$.

How can I get the $R$ and $R^T$ for the Cholesky decomposition $S=R^TR$?

  • $\begingroup$ Isn't it simply $R = \sqrt{L} Q^T$? $\endgroup$ – vibe Mar 17 '20 at 5:36
  • 1
    $\begingroup$ It seems that it is not R is not upper triangular. $\endgroup$ – Jing Bai Mar 17 '20 at 5:40
  • 1
    $\begingroup$ Is $S$ a general matrix or it has some properties (like positive-definiteness)? $\endgroup$ – Anton Menshov Mar 17 '20 at 8:25
  • 3
    $\begingroup$ This looks a lot like an XY question. What do you need to do with the Cholesky decomposition that you cannot already do directly with the eigendecomposition? $\endgroup$ – Federico Poloni Mar 17 '20 at 10:07
  • $\begingroup$ positive definite symmetric $\endgroup$ – Jing Bai Mar 17 '20 at 23:18

Let me re-write the eigen-decomposition as: $S = UDU^{\top}$. Now, consider the QR-decomposition $\sqrt{D}U^{\top} = QR$ where $Q$ is unitary and $R$ is upper triangular. For uniqueness, one has to ensure that $R$ has positive diagonal entries. For negative diagonal values, we can negate the corresponding row of $R$. $\,S=R^{\top}R$ is then the Cholesky decomposition.

Here is a MATLAB snippet to reproduce:

n = 5;
A = rand(n); 

% construct S to be positive-definite:
S = A'*A; 
S = S + n*eye(n);
[U,D] = eig(S); % we assume this to be given.

% original cholesky for comparisons
Rchol = chol(S);

% perform the proposed Cholesky
[~,Rqr] = qr(sqrt(D) * U');
Dg = diag(sign(diag(Rqr)));
Rqr = Dg * Rqr;

% now verify that Rqr = Rchol are the same
disp(['error in R: ' num2str(norm(Rchol-Rqr))]);

% now verify that S can be reconstructed from Rqr
disp(['reconstruction error: ' num2str(norm(S - Rqr'*Rqr))]);

% both results should be almost 0 (up to the numerical precision)

If $S$ is full rank and positive definite, Cholesky decomposition is unique.

  • $\begingroup$ Is it unique if S has degenerate eigenvalues given the arbitrariness of choice of linear combinations when forming U? $\endgroup$ – Ian Bush Mar 17 '20 at 13:31

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.