<DIV><BR></DIV>
<DIV><FONT size="4">Hi all subscribers, hi Andreas,<BR>I used Ipopt for my own application. And I used the derivative checker for my evaluation of derivatives. There is no error reported for the objective function for the first-order derivative checker. However ,there are some errors about the Hessian matrix of the objective function. I wondered whether the second-order information of the hessian for the objective function should be theoretic right under the condition that its first-order is right. Followings are the error reports of derivative checker of Ipopt:</FONT></DIV>
<DIV><BR><FONT color="#f00000"><STRONG><FONT size="4">The first-order information of the objective function is ok,as follows:</FONT></STRONG><BR></FONT>******************************************************************************<BR>This program contains Ipopt, a library for large-scale nonlinear optimization.<BR> Ipopt is released as open source code under the Common Public License (CPL).<BR> For more information visit <A href="http://projects.coin-or.org/Ipopt" target="_blank">http://projects.coin-or.org/Ipopt</A><BR>******************************************************************************</DIV>
<DIV>This is Ipopt version 3.6.1, running with linear solver ma27.</DIV>
<DIV>(<FONT color="#f00000">For clearity,I omit some other information like </FONT></DIV>
<DIV><FONT color="#f00000">jac_g [ 0, 0] = 2.4192580346748699e+001 v ~ 2.4192580738713332e+001 [1.620e-008] and so on<BR> )</FONT></DIV>
<DIV><FONT color="#000000">Starting derivative checker for first derivatives.</FONT></DIV>
<DIV> grad_f[ 0] = 1.1608347103501686e+001 ~ 1.1608346994762542e+001 [9.367e-009]</DIV>
<DIV> grad_f[ 1] = 1.3365414915309747e+001 ~ 1.3365414844164443e+001 [5.323e-009]</DIV>
<DIV> grad_f[ 2] = 1.5796283347597537e+000 ~ 1.5796285168789836e+000 [1.153e-007]<BR> grad_f[ 3] = 2.5003454442918516e+000 ~ 2.5003461525306485e+000 [2.833e-007]<BR> grad_f[ 4] = 9.7099243229060797e+000 ~ 9.7099249413737549e+000 [6.369e-008]<BR> grad_f[ 5] = -1.0773179814837853e+001 ~ -1.0773178971135167e+001 [7.832e-008]<BR> grad_f[ 6] = 4.2161665105716217e+000 ~ 4.2161666158335720e+000 [2.497e-008]<BR> grad_f[ 7] = 3.7573752776060099e+000 ~ 3.7573754636433470e+000 [4.951e-008]<BR></DIV>
<DIV><FONT color="#f00000" size="4"><STRONG>Howerver ,some erros reported in second-order derivative checker:</STRONG></FONT></DIV>
<DIV><FONT color="#000000">Starting derivative checker for second derivatives.</FONT></DIV>
<DIV> </DIV>
<DIV> obj_hess[ 0, 0] = 2.1667999999999999e+001 v ~ 2.1668000016461519e+001 [7.597e-010]<BR> obj_hess[ 0, 1] = 1.4846332882348406e+001 v ~ 1.4846332874185464e+001 [5.498e-010]<BR> obj_hess[ 0, 2] = -6.3199549447439418e-001 v ~ -6.3199543376413203e-001 [6.071e-008]<BR> obj_hess[ 0, 3] = -3.0727543785496283e+000 v ~ -3.0727544064745871e+000 [9.088e-009]<BR> obj_hess[ 0, 4] = 3.4428446955109338e-001 v ~ 3.4428424555699166e-001 [2.240e-007]<BR> obj_hess[ 0, 5] = -3.3725573097898369e+000 v ~ -3.3725569892339990e+000 [9.505e-008]<BR> obj_hess[ 0, 6] = -4.6717664533426682e+000 v ~ -4.6717665291851063e+000 [1.623e-008]<BR> obj_hess[ 0, 7] = 1.7283918699941374e+000 v ~ 1.7283918296584488e+000 [2.334e-008]<BR>* obj_hess[ 1, 0] = 1.4846332882348406e+001 v ~ 9.1281670944770920e+008 [1.000e+000]<BR>* obj_hess[ 1, 1] = 7.1104243742634594e+000 v ~ 1.0509828614292449e+009 [1.000e+000]<BR>* obj_hess[ 1, 2] = 2.9470153244501667e+000 v ~ 1.2421330133431286e+008 [1.000e+000]<BR>* obj_hess[ 1, 3] = -5.3405494070519410e-001 v ~ 1.9661343399021125e+008 [1.000e+000]<BR>* obj_hess[ 1, 4] = 2.9853884066737142e+000 v ~ 7.6353513713819706e+008 [1.000e+000]<BR>* obj_hess[ 1, 5] = 3.1521177446064130e-001 v ~ -8.4714371002286768e+008 [1.000e+000]<BR>* obj_hess[ 1, 6] = -1.6040120801053943e+000 v ~ 3.3153617915217382e+008 [1.000e+000]<BR>* obj_hess[ 1, 7] = -4.0798313132651529e+000 v ~ 2.9545935826156133e+008 [1.000e+000]</DIV>
<DIV>. ..............................</DIV>
<DIV>. ..............................</DIV>
<DIV>. ..............................</DIV>
<DIV>* obj_hess[ 7, 6] = 3.8733499986256832e+000 v ~ 3.7267636760748780e+008 [1.000e+000]<BR>* obj_hess[ 7, 7] = 2.9676708730317345e+000 v ~ 3.3212278660882109e+008 [1.000e+000]</DIV>
<DIV><BR>
<DIV><FONT color="#000000" size="4">And I noticed that the derivative results computed by the finite difference of Ipopt is huge, e.g 2.2544251702905512e+009 , 2.2101112672395563e+008 .Why the obj_hess[0][] of the finite differences is resonable and almost identical with the values based on my own code , while others are totally unresonable and have too </FONT><FONT size="4"><FONT color="#008000"><FONT color="#000000">huge errors compared to my results?</FONT> <BR></FONT><BR></FONT></DIV>
<DIV><FONT size="4"> </FONT></DIV>
<DIV><FONT size="4">Thanks for any help!!!!!!!!!!!!<BR></FONT></DIV><BR></DIV><br><br><span title="neteasefooter"/><hr/>
<a href="http://www.yeah.net/?from=footer">没有广告的终身免费邮箱,www.yeah.net</a>
</span>