[Ipopt] eval_grad_f , eval_jac_g, eval_h

Stefan Vigerske stefan at vigerske.de
Tue Nov 11 17:25:21 EST 2008


Hi,

>    I would like to know if it is absolutely neccesary to declare the functions "eval_grad_f ", "eval_jac_g" and "eval_h" for introduce the gradient, constraints jacobian and hessian and if exist the possibility of telling Ipopt that he must compute this 3 informations automatically using the objective function expression and the constraints expressions only.

You can let Ipopt approximate the Hessian (something with quasi newton,
see the documentation), but the gradients should be provided exactly.

The CppAD project has an example on who to use Automatic (or
Algorithmic) Differentiation with Ipopt, see
http://www.coin-or.org/CppAD/Doc/ipopt_cppad_nlp.htm and
http://www.seanet.com/~bradbell/ipopt_cppad.pdf .
That way, you would need to implement the function evaluation routines,
and CppAD would take care of first and second derivatives "on the fly".

Best,
Stefan


More information about the Ipopt mailing list