<div dir="ltr">The derivative checker numerically differentiates your objective and constraint function. This is simply used to check whether you wrote your analytical derivatives in your gradient and Jacobian functions correctly. It looks like you probably did, but that the error in the numerical differentiation is causing the derivatives from the checker to be slightly different than the ones in your functions. You can change the tolerance on the derivative checker, or ignore this. You're analytical derivative is correct. There is no need to run the checker in you "real" IPOPT runs.<br><div class="gmail_extra"><br clear="all"><div><div dir="ltr"><br>Jason<br><a href="http://moorepants.info" target="_blank">moorepants.info</a><br><span>+01 <a href="tel:530-601-9791" value="+15306019791" target="_blank">530-601-9791</a></span><br></div></div>
<br><div class="gmail_quote">On Thu, Sep 18, 2014 at 7:08 AM, Philipp Bender <span dir="ltr"><<a href="mailto:pbender@fzi.de" target="_blank">pbender@fzi.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
Dear list,<br>
<br>
I play around with IpOpt trying to solve my problem and some things<br>
from the documentation are unclear to me. Apart from that, I like the<br>
interface a lot and compared to SLSQP from nlopt, I hope to profit<br>
from the sparsity feature.<br>
<br>
My question is:<br>
<br>
What exactly does the derivative checker do?<br>
<br>
I have the following problem:<br>
<br>
min sum(x[i]**2), i = 0..49<br>
<br>
s.t. -inf < x[i] < -1000<br>
<br>
I did<br>
<br>
* not implement eval_h and left nnz_h_lag untouched in getnlp_info()<br>
<br>
* SetStringValue("hessian_approximation", "limited-memory");<br>
* SetStringValue("derivative_test", "first-order");<br>
<br>
* implement the eval_graf_f like grad_f[i] = 2*x[i]<br>
* initialized with x[i] = i, which obviously violates bounds.<br>
<br>
I get the following:<br>
<br>
- ---------------------------<br>
<br>
This is Ipopt version 3.11.9, running with linear solver mumps.<br>
NOTE: Other linear solvers might be more efficient (see Ipopt<br>
documentation).<br>
<br>
Starting derivative checker for first derivatives.<br>
<br>
* grad_f[ 5] = -1.3516155659571183e+01 ~<br>
- -1.3505262089473826e+01 [ 8.066e-04]<br>
* grad_f[ 22] = 1.0686361135565363e+01 ~<br>
1.0667231032792877e+01 [ 1.793e-03]<br>
* grad_f[ 33] = 2.1337930046135796e+01 ~<br>
2.1351790099452490e+01 [ 6.491e-04]<br>
<br>
Derivative checker detected 3 error(s).<br>
<br>
- ---------------------------<br>
<br>
What does this mean? Is it important to have the checker run without<br>
errors?<br>
<br>
Best regards,<br>
Philipp<br>
<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1<br>
<br>
iQIcBAEBAgAGBQJUGr1AAAoJEMSOzTAqQDLo808QAJfgphGl18LCPbNHD2E8Kcwi<br>
o1Cz3esgLOZwuWZ85FN+kgQL9GWwK8uqv//WoaT0G+X0ZaP1dlRx489Y8n46fnNP<br>
3Ky/0PDdnn7Gtc4ke875pA4k5wgGbkAD4+rTw9taUuhc0sBTGVK6URhiymvIm21L<br>
P1oWQ7NrCQT2xG8FzhJlnUwf0xRkVyYCjCvc67XIw2viA6N9DVpe69vSPOb+PnYn<br>
8oFnoIK6WULN/ugQHiHrSGt/DkjVFnQcN/o17bUmZIUrapJ1VGW+8+j4sM4av+Gl<br>
C6qbxef9wwZIjkylgeb/TzH+S6gLurnpm+8Qsdrb7img4BiF+5tOCRlH9OZ5t9pM<br>
LAdZVEny9eqaqV2wYk6QzpUt5EfJLYNeLjEhfHFakCJwCsE+O0t+ZsVAxJGprZFp<br>
Hlq2hrgf8f7ao5MAfOrnTvIW8S5t6sNfY1XkPnAg45gQnnwrSXHC9CtcO/woMVIn<br>
Eny+EjafcN7xrKRYpafta5GGQKIzNGWjY8kMzkNWUV54elt7mMFYzbIv9m1Ftn8x<br>
XT3fRRo/pNwVUx0X0Ts79of1GlvuwuU9j3LdlL721y1DS7RES4Gxs7D1HNqgr1/c<br>
UQM54SIgoZZcPXjKtJ+O/wCYsLL2qwgxFq1ROx3GPZmskk9WedWN/2i60WTEsFRk<br>
Vqo4iNcLO0OsrB3Q2T/A<br>
=mm94<br>
-----END PGP SIGNATURE-----<br>
_______________________________________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
</blockquote></div><br></div></div>