<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
</head>
<body bgcolor="#ffffff" text="#000000">
<pre>Hi,</pre>
<pre>
I have some problems with the derivative checker. I provided a starting point of (0.25, -0.4, 0.5, 1), however, ipopt performs a derivative check at (-9.7249748222296830, 0.87170628986480203, -5.6339152195806754, 7.1748100222785105).
The starting point seems to be right until the function IpoptSolve is called. Then for some reasons the starting point changes and after the derivative check Ipopt starts the optimization with the right starting point.

</pre>
<pre class="moz-signature" cols="72">
Code:

...

/* create the IpoptProblem */
nlp = CreateIpoptProblem(n, x_L, x_U, m, NULL, NULL, 0, 0, 0, &amp;eval_f, &amp;eval_g, &amp;eval_grad_f, &amp;eval_jac_g, &amp;eval_h);

AddIpoptStrOption(nlp, "hessian_approximation", "limited-memory");
AddIpoptStrOption(nlp, "derivative_test", "first-order");
AddIpoptStrOption(nlp, "derivative_test_print_all", "yes");

/* allocate space for the initial point and set the values */
x = (Number*)malloc(sizeof(Number)*n);
for (k = 0; k &lt; n; k++)
{
        x[k] = Iparameter[k];
}        

/* allocate space to store the bound multipliers at the solution */
mult_x_L = (Number*)malloc(sizeof(Number)*n);
mult_x_U = (Number*)malloc(sizeof(Number)*n);

/* solve the problem */
status = IpoptSolve(nlp, x, NULL, &amp;obj, NULL, mult_x_L, mult_x_U, NULL);
        
/* free allocated memory */
FreeIpoptProblem(nlp);

...


<font color="#000000">Any Idea, how to perform the derivative check at the starting point, would be very helpful.</font> 
 
<font color="#000000">Best regards,
Andre</font>
</pre>
</body>
</html>