Pivoted Cholesky - triangulate the resut?

24 Views Asked by At

I have implemented pivoted Cholesky from http://www.dfg-spp1324.de/download/preprints/preprint076.pdf. My expectation was that I would be able to use the resulting triangular matrix to easily solve the linear equations. However, the resulting matrix is not triangular. However, $R^TR$ indeed seems to be equal to the original matrix I decomposed.

Originally, I thought that there is error in my implementation, but when I found another one and it had the same problem (https://github.com/NathanWycoff/PivotedCholesky/blob/master/pivoted_chol.py). Then I found one in Tensorflow (https://www.tensorflow.org/probability/api_docs/python/tfp/math/pivoted_cholesky), and it has disclaimer about the resulting matrix not being triangular.

  1. Is it indeed true that the result of the pivoted Cholesky decomposition is not triangular?
  2. Can it be triangulated somehow? I tried to multiply it with the permutation matrix but that was not giving me anything resembling the triangulate matrix. The number of 0 and non-0 elements seems to be correct, but they are not located in the triangular shape.
  3. Is there actually sense in using pivoted Cholesky for solving $J^Tx=J^Tr$ equation where $J$ is 6x6 Jacobian coming from matching pair of 3D correspondences? Would a normal Cholesky be enough in terms of numerical stability? Or LDLT / QR decomposition?

Thank you in advance. I am more a programmer than a mathematician, so I am experiencing trouble understanding some theory behind correspondence matching.