Info

This question is closed. Reopen it to edit or answer.

Problem with nonlinear optimization of a process model

1 view (last 30 days)
Sascha
Sascha on 24 Oct 2012
Closed: MATLAB Answer Bot on 20 Aug 2021
Hello everybody,
I have a process model with several input parameters and one output to be optimizes. As a first step I tried to fix the input parameters except two of them. Then I plottet the output in dependence of the two inputs left. It is obvious that this funtion is convex, so it should be a good optimization problem for solvers such as fmincon (there are parameter combinations leading to NaNs, but only at the edges of the function!). So far, so good. Now I tried to optimize but the input parameters hardly move from the starting values. The solver stops because the raelative changes in x are smaller than TolX (1e-12). How can that happen and what can I do about it?
Thank you very much for your help!!!
Sascha

Answers (2)

Alan Weiss
Alan Weiss on 24 Oct 2012
It is possible that your objective function does not change when the parameters change by a small amount. This can cause premature convergence. See the suggestions in Optimizing a Simulation or ODE.
You could also try the suggestions in Final Point Equals Initial Point.
Alan Weiss
MATLAB mathematical toolbox documentation
  1 Comment
Sascha
Sascha on 24 Oct 2012
Edited: Sascha on 24 Oct 2012
Hey,
thank you for that answer. For the two-parameter-setup that realy worked (changing the finite differnces size). But still as soon as I give more free parameters to the solver, the first-order-optimality does not come under 1e0. As I am no mathematician I do not completely get, what that means to my optimization problem (I know that is the total derivation of the lagrange function, but that´s about it). As long, as I leave the nukmber of input parameters at two, the first-order-optimality decreases down to values like 1e-6.
Sascha
Edit: Also the solver sometimes end in regions where the constraints are (quite strongly) violated

Alan Weiss
Alan Weiss on 25 Oct 2012
Without more details, I don't know what to say. Perhaps you could use the fmincon interior-point algorithm, if you aren't already doing so. Or try the sqp algorithm.
Also, for this type of problem, the first order optimality measure might not ever get close to zero, because the objective function might not be smooth.
Ending up in an infeasible region is annoying, but unavoidable for some problems. Try starting the solver from various points.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

This question is closed.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!