# [Ipopt] how would Ipopt discriminate spsd-ness from indefiniteness

Thu May 4 06:27:47 EDT 2017

```Dear all,

I have a Hessian of the Lagrangian that is spsd (symmetric positive
semi-definite) but not spd (symmetric positive definite), i.e. all
eigenvalues are non-negative but for certain there are eigenvalues that are
zero. That Hessian is constructed as follows:

I have HL = P' * A * P, where A is block-diagonal. I know from theory (BFGS
blocks) that the diagonal blocks of A are each spd, so to enforce this
numerically under any circumstances, I still go through the blocks, enforce
symmetry by A = 1/2*(A+A') and then do an eigendecomposition of each
diagonal block and replace that block by the product Q*T*Q', where T is the
diagonal of eigenvalues and Q is the eigenvector matrix, and where I
replace any negative entry of T by 1e-10. Then I generate HL.

I am now wondering how Ipopt is going to handle that. I mean if one
eigenvalue was negative then a shift was required. However, when
eigenvalues are zero then the condition is infinite, i.e. by no stable
decomposition Ipopt could detect whether my eigenvalue is still >=0 or
maybe still -1e-15. I just observe that it takes very large
regularisations, e.g. 10^2.

I know that when columns and rows of HL are zero that then the problem
simplifies since the system can be reformulated and a part of HL
can be determined that has only zero eigenvalues and another that has only
eigenvalues greater a constant>0.

I am thankful if someone has an idea how to deal with this situation. The
goal is to make Ipopt recognise that it does not need regularisations,
whereas on the other hand it must be assured on the numerical side that
under round-off this regularisation is really not required.

Kind regards,
Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20170504/2f569368/attachment.html>
```