MATLAB Answers

Helen
0

fmincon and exitflag = -2 or 2 / non respect of constrained conditions

Helen
さんによって質問されました 2012 年 6 月 1 日
最新アクティビティ Walter Roberson
さんによって コメントされました 2018 年 7 月 6 日
Hello everyone,
I'm creating a model on Matlab for optimization with inequality constraints, especially the minimization of a function with several variables (at least 4). I'm trying to run the optimization for many times to get a list of solutions, gotten by a parameter varying at each simulation.
However, I cannot solve problems I met: - exitflag = -2 most of the time and 2 for the other simulations. I don't know where I can correct or change to get exitflag = 1. - among constrained conditions I set, some of them aren't respected after minimizations.
If someone could advice me what method I could follow?
Thank you for the answer.
General description of the model: *------ objective : minimize a section ( I shape) submitted to a tension force *------ variables : thicknesses, height, wide *------- constraints : - section > 0 - variables >0 + linear inequality relation between two of them - tension stress < certain value in MPa : non respected condition

  0 件のコメント

サインイン to comment.

3 件の回答

回答者: Sargondjani 2012 年 6 月 1 日
編集済み: John Kelly 2015 年 3 月 2 日
 採用された回答

getting exit message 2 is not bad but if you insist on having 1, you could try to use smaller values for TolX (ie.. 1e-10 or even 1e-14)
as for exit message -2: there could be many causes.
if you choose a feasible starting point, fmincon should be able to find a solution i guess...
but maybe you could also post the output of the last couple of iterations and the exit message? and the fmincon command + options? otherwise it is very hard to guess what's going on

  1 件のコメント

Helen
2012 年 6 月 4 日
Hello,
Thank you very much for your answer. I've tried to check non linear constraints. Even i found a feasible point, the problem is that I'd like to do the optimization with random values of the variables, so I could obtain a list of solutions. How to make sure that the initial values are all feasible points?
Thank you.

サインイン to comment.


回答者: Alan Weiss
2012 年 6 月 6 日
編集済み: John Kelly 2015 年 3 月 2 日

If you have a Global Optimization Toolbox license, you could try MultiStart. If you like, you can filter the initial points so the local solver uses only feasible starting points, although I am not sure this is really necessary. See this link for general information about how to use MultiStart, and this link to see the effect of using only feasible start points.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

  4 件のコメント

Walter Roberson
2012 年 6 月 7 日
Multistart is part of the Global Optimization Toolbox, which is not provided with the MATLAB Student Version. It can, however, be added for about $US29
http://www.mathworks.com/academia/student_version/companion.html
Sargondjani 2012 年 6 月 8 日
you have three input variables so you could make a 3D grid and solve for all points in the grid.
you could start with a wide grid with not so many points and then make a finer grid around the points that give feasible solutions, or something like that
Helen
2012 年 7 月 12 日
sorry for the late answer, thank you very much.

サインイン to comment.


回答者: Ahmed Rageh 2018 年 7 月 4 日

Where could I find TolX? the code has TolFun and TolCon only.
options = optimset('Display','iter','TolFun',1e-10,'TolCon',1e-10)

  1 件のコメント

Walter Roberson
2018 年 7 月 6 日
TolX is still the name to use with optimset() .
If you were updating to the newer option routines, you would use StepTolerance, or XTolerance for GlobalSearch and MultiStart

サインイン to comment.



Translated by