I have a large problem that I'm optimizing with Newton method. This involves a large sparse Hessian matrix. For better convergence and not to get stuck prematurely, I'd like to make the Hessian positive semidefinite. I leafed through some material:
Nearest positive semidefinite matrix to a symmetric matrix in the spectral norm
https://ljk.imag.fr/membres/Jerome.Malick/Talks/11-SIOPT.pdf
https://hal.archives-ouvertes.fr/hal-00574437/file/henrion-malick-revision.pdf
and performed some experiments, but I didn't come up with a practical solution. I was wondering if anyone has tips on the matter.
EDIT: to clarify, it works fine when I'm projecting a dense matrix (using Matlab eig), but for large sparse matrices, this approach isn't practical.
--
My current problem is mesh-related, and I'm able to treat the terms in my energy separately, getting a local 6x6 Hessian, which I project to PSD using eigenvalue decomposition, a-la
https://www.math.ucla.edu/~jteran/papers/TSIF05.pdf
It works fine, but I was wondering about a solution to the general problem.
--
On the subject, I also have (sparse) linear constraints. Incorporating them with the Hessian (Lagrange-multipliers-style), the resulting KKT system (to extract a direction for the line search) becomes [H c; c' 0], which may not be PSD even if H is PSD. Any thoughts about that?
--
For code examples or libraries, my preference is matlab.