[Coin-ipopt] Re: Ipopt help! Can ipopt work when it is impossible to write analytical expression for gradient, jacobian and hessian ?

Andreas Waechter andreasw at watson.ibm.com
Tue Sep 5 11:50:56 EDT 2006

Hi Liang Xingang,

Please send messages regarding Ipopt to the Ipopt mailing list.

> i have built the ipopt and the example problems are working well.
> but in my problem (orbit optimization), the objective and constraints 
> are get from
> a set of differential equations by numerical integration. so it is 
> impossible to
> write analytical expression for gradient, jacobian and hessian like that 
> in the example problems.
> I have tried to set the "derivative_test" as "second-order", but it does 
> not work.
> my question is under this situation, can ipopt work? how?

Ipopt requires at least the first derivatives.  If second derivatives are 
not available, one can use the quasi-Newton option to approximate the 
second derivatives, but the first derivatives must be provided.

You could try to obtain first derivatives from your integration code via 
automatic differentiation or by finite difference approximation, but 
depending on your problem that might not work.

The option "derivative_test" is not trying to approximate derivatives for 
you, it is only checking whether the derivatives you have implemented 
(which you didn't) seem to be correct.

If you cannot provide derivative information (not even approximately), 
what you are trying to do is "derivative-free" optimization.  The COIN-OR 
code DFO is written for that purpose.

Alternatively, you could think about discretizing your differential 
equations and pose those directly to the optimization code as constraints, 
in which case you would not use a numerical integration code in addition. 
You might want to have a look at some of the NLPs from the COPS 
collection as examples for this approach.



More information about the Coin-ipopt mailing list