TransWikia.com

How to find the nearest/a near positive definite from a given matrix?

Computational Science Asked on March 16, 2021

I’m given a matrix. How do I find the nearest (or a near) positive definite from it?

The matrix can have complex eigenvalues, not be symmetric, etc. However, all its entries are real valued. The resulting matrix from the algorithm must be positive definite, with all its entries real valued only. Symmetry is a plus, but not necessary.
I have no preference toward the metric used. I prefer a pragmatic(relatively easy to programme) approach. It doesn’t have to be optimal.

2 Answers

Quick sketch of an answer for the Frobenius norm:

  1. Replace $X$ with the closest symmetric matrix, $Y=frac12 (X+X^top)$.
  2. Take an eigendecomposition $Y=QDQ^top$, and form the diagonal matrix $D_+=max(D,0)$ (elementwise maximum).
  3. The closest symmetric positive semidefinite matrix to $X$ is $Z=QD_+Q^top$.
  4. The closest positive definite matrix to $X$ does not exist; any matrix of the form $Z+varepsilon I$ is positive definite for $varepsilon>0$. There is no minimum, just an infimum. Positive definite matrices are not a closed set.

To prove (1) and (3), you can use the fact that the decomposition of a matrix into a symmetric and antisymmetric part is orthogonal. In particular, this implies that we can minimize in two succesive steps like we did.

To prove (2), use the Wielandt-Hoffmann theorem.

Correct answer by Federico Poloni on March 16, 2021

If you're ok with positive semi-definite matrices, then you can refer to this paper, which I think is what Frederico's answer also explains:

Higham NJ. Computing a nearest symmetric positive semidefinite matrix. Linear Algebra and its Applications. 1988 May;103(C):103-118.

A python implementation can be found in this answer, which also provides a link to a maltab implementation.

Answered by souljaboy764 on March 16, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP