[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