<div dir="ltr"><p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">Hello All,</span></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"> </span></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">I have implemented a trajectory optimizer
using non-linear programming and collocation per </span>Hargraves and Paris’s canonical paper on
the method linked below.</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">I have been able to demonstrate the
technique on a small scale toy problem using the Sequential Least Squares
Quadratic Programming [</span><span style="color:rgb(51,51,51);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">SLSQP </span>]
solver included within the scipy minimize function. </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:rgb(51,51,51);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"> </span></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">I am now in the process of selecting
and integrating a more capable solver to handle problems of greater size and
complexity; to this end IPOPT looks proven and promising.  </span></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"> </span></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">I will be interfacing with IPOPT
though C++.  My question pertains to
Section 3.2 Figure 2 Item 5 regarding the </span>Evaluation of Problem Functions within
the Introduction to Ipopt document linked below.</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">In the hs071 example problem analytic expressions for the Gradient
of the objective, Jacobian of the constraints and Hessian of the Lagrangian are
derived.  Obtaining analytic expressions
for these problem functions is prohibitively difficult for the collocation
method I am implementing.  I can however approximate
these quantities by finite difference.</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><b><u>My
question is thus – </u></b></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt 0.5in;font-size:11pt;font-family:Calibri,sans-serif">1.<span style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:"Times New Roman"">      
</span>Is it advisable to write a function which
obtains the Gradient of the objective, Jacobian of the constraints and Hessian
of the Lagrangian by finite difference</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt 0.5in;font-size:11pt;font-family:Calibri,sans-serif">2.<span style="font-variant-numeric:normal;font-variant-east-asian:normal;font-stretch:normal;font-size:7pt;line-height:normal;font-family:"Times New Roman"">      
</span>Is there a utility existent in IPOPT which can
obtain numerically obtain the Gradient of the objective, Jacobian of the
constraints and Hessian of the Lagrangian for me?</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Thank you for your time and assistance.</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Reid</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><span style="color:rgb(17,17,17);background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">Direct Trajectory Optimization
Using Nonlinear Programming and Collocation</span></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><a href="https://www.researchgate.net/publication/230872953_Direct_Trajectory_Optimization_Using_Nonlinear_Programming_and_Collocation" style="color:blue">https://www.researchgate.net/publication/230872953_Direct_Trajectory_Optimization_Using_Nonlinear_Programming_and_Collocation</a></p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"> </p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif">Introduction to Ipopt</p>

<p class="gmail-MsoNoSpacing" style="margin:0in 0in 0.0001pt;font-size:11pt;font-family:Calibri,sans-serif"><a href="https://projects.coin-or.org/Ipopt/browser/stable/3.10/Ipopt/doc/documentation.pdf?format=raw" style="color:blue">https://projects.coin-or.org/Ipopt/browser/stable/3.10/Ipopt/doc/documentation.pdf?format=raw</a><span style="color:black;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"></span></p></div>