I've recently posted this question. To summarise, I'm dealing with supposedly Symmetric Positive Definite(SPD) matrices, but due to machine-precision they end up not being SPD. In a comment, a user suggested to use the lower triangular portion of the matrix.

  1. I would like to be sure in what way we can use that? What algorithm is he possibly alluding to? I thought of the Cholesky Decomposition...
  2. With that method, or another which uses the lower triangular part of the matrix, will I be able to take any 'almost' SPD matrix, and return an SPD matrix?
  • 1
    $\begingroup$ Is the matrix still symmetric or does it lose its symmetry due to machine-precision? Also, what computations do you do to update the symmetric matrix? If the updates can be represented as a sequence of rank one updates, then you could do the updates directly to the Cholesky factor for your matrix and that might help ensure your matrix remains PD. $\endgroup$
    – spektr
    May 19, 2021 at 20:12
  • $\begingroup$ What the answerer suggests is to define a macro/function which can be roughly expressed as "func Afromlower(i,j) : if i>j then return A(j,i), otherwise return A(i,j)". Then you can just use that function handle in place of the matrix and the regular algorithms can be applied directly (out-of-place of course, with this approach you would have to redesign the algorithms to do in-place computations). $\endgroup$ May 19, 2021 at 23:54
  • $\begingroup$ W.r.t. your original question, you only need to add $c$ to the nonpositive eigenvalues. $\endgroup$ May 20, 2021 at 17:59


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.