[Ipopt] asymmetric Hessian matrix

Ming Ji finalguy at gmail.com
Wed May 16 11:53:08 EDT 2012


Hi,

First when I use IPOPT for my problem, I see the bound constraints for
parameters are violated. The library throws an exception, and the program
terminated. To be specific the contraint on that parameter is [0.005,
0.006], however I see the library is trying to use 0 for that parameter.

Later, I enabled second order deriviative check, however the numerical
calculation gives asymmetric Hessian matrix for contraints. The values are
very different one is about 3000, the other is about 3.0e13. I spend some
time on the library source code. I found the following line changes the
parameter magically:

 for (Index i = 0; i < nx; ++i) {
std::cout << ivar << "  2.3     " << xref[i] << "  " << xpert[i] <<
std::endl;
}

IpBlasDcopy(nx, &zero, 0, gradref, 1);

for (Index i = 0; i < nx; ++i) {
std::cout << ivar << "  2.5     " << xref[i] << "  " << xpert[i] <<
std::endl;
}

The output is:
1  2.3     0.0481804  0.0481804
1  2.3     700.976  700.976
1  2.3     0.0165778  0.0165778
1  2.3     2.54335  2.54335
1  2.3     0.27909  0.27909

1  2.5     0.0481804  0
1  2.5     700.976  700.976
1  2.5     0.0165778  0.0165778
1  2.5     2.54335  2.54335
1  2.5     0.27909  0.27909

IpBlasDcopy is a Fortran function, is that the problem?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20120516/5d2cf1e2/attachment.html>


More information about the Ipopt mailing list