0

Here,I have an matrix,e.g,A,where A=[1 0.9 0.5;0.9 1 0.9;0.5 0.9 1],how to caculate its closest positive semi-definite matrix ? Is there any comand or algorithm ?

Purple
  • 11
  • 1

2 Answers2

1

The closest positive semi-definite matrix is obtained using the polar decomposition. The jury is still out if the computation of this decomposition using the SVD or direct iterative methods is faster.

Lutz Lehmann
  • 25,219
  • 2
  • 22
  • 51
0

closest in what sense?

Typically, the best way to think about this is in eigenspace. If you don't have any constraints on the eigenvalues, I am not sure there is any way to make sense of your question. Sure, there exist other matrices which are semi positive definite; but in what sense are they still related to your original matrix?

But in case you have all real eigenvalues, things become a little more tangible. You can translate the eigenvalues along the real axis by adding to the diagonal, for instance.

Also, in practice one often deals with matrices which are SPD up a scaling of rows/columns; finding that scaling shouldn't be too hard, if it exists; but that scaling should then typically be available from the surrounding code. (a mass matrix of sorts).

Eelco Hoogendoorn
  • 10,459
  • 1
  • 44
  • 42
  • In fact,I do not know the meaning of "closest".I learn it from the second section of the paper "An Approximate Method for Sampling Correlated Random Variables from Partially-Specified Distributions" . The author acquires the closest positive semi-definite matrix by solving the minimum Euclidean distance between L*L(T) (where the superscript T indicates matrix transpose)and the original matrix.The matrix L is the solution. I would appreciate it if you happen to have read this paper. – Purple Jan 25 '14 at 02:00