Problem (this is not a "homework" problem but a "minimum working example" of the problem that I think I have. My problem can only be solved using least-square-ish approaches):

Using

*f*(

*x*) = sin(

*x*), find the solution for

*f*(

*x*) = 0 using the Levenberg-Marquardt (LM) argorithm that is closest to

*x* = 0.9 * (pi/2) as initial guess. Hence, a local optimum is searched for.

The expected solution is

*x* = 0. However, the alglib implementation of LM yields -18.85, which numerically represents -6 * pi.

Further, assume that:

- The initial guess cannot be improved, i.e. it cannot be brought closer to the expected solution.

Questions:

- In this problem related with the fact that
*f* is locally concave around the initial guess? - What (alglib) (optimization) procedure is recommended to obtain the expected solution?

<update>:

The following can help to obtain the correct solution:

- use minlmsetbc(minlmstate state, double[] bndl, double[] bndu) if the bounds of
*x* are known - use minlmsetstpmax(minlmstate state, double stpmax); to reduce the step size, possibly at the cost of performance
- instead of LM, use a trust-region method (?)

But what if bounds and/or step size information is not available?

====

Many thanks in advance!