<div>Hi,</div>
<div> </div>
<div>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.</div>
<div> </div>
<div>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:</div>
<div> </div>
<div> for (Index i = 0; i < nx; ++i) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>std::cout << ivar << " 2.3 " << xref[i] << " " << xpert[i] << std::endl;</div>
<div>}</div><div><br></div><div><span style="background-color:rgb(255,0,0)">IpBlasDcopy(nx, &zero, 0, gradref, 1);</span></div><div><br></div><div>for (Index i = 0; i < nx; ++i) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>std::cout << ivar << " 2.5 " << xref[i] << " " << xpert[i] << std::endl;</div>
<div>}</div><div><br></div><div>The output is:</div><div><div>1 2.3 0.0481804 0.0481804</div><div>1 2.3 700.976 700.976</div><div>1 2.3 0.0165778 0.0165778</div><div>1 2.3 2.54335 2.54335</div><div>
1 2.3 0.27909 0.27909</div><div><br></div><div>1 2.5 0.0481804 <span style="background-color:rgb(255,0,0)"> 0</span></div><div>1 2.5 700.976 700.976</div><div>1 2.5 0.0165778 0.0165778</div><div>1 2.5 2.54335 2.54335</div>
<div>1 2.5 0.27909 0.27909</div></div><div><br></div><div>IpBlasDcopy is a Fortran function, is that the problem?</div><div><br></div><div><br></div><div><br></div>