FMINCON - Include constraints provided by the objective function
19 views (last 30 days)
Show older comments
Hi All,
I am currently working on an optimization problem with fmincon. The objective function takes quite a while to calculate, but in the end it is giving me a result in terms of resulting mass. This mass shall be optimized/minimized using fmincon which is working quite well on its own.
I am calling fmincon as follows:
[x,fval] = fmincon(@MASTER, x0,[], [], [],[],lb,ub,[], options);
Now, I would like to include constraints as well. Checking the help/support pages, I can simply add a constraint evaluation function at the end of the fmincon-call.
However, my objective function is also capable of giving me my constraint information as well. I am currently not returing it of course but it can be easily calculated. Sure I can double-call the function, once for objective and once for constraint, but I really dont want to call it twice due to the long calculation time. Is there any way I can use the constraint values I am already calculating in my objective function to be used by fmincon without calling it a second time?
Any advice would be fantastic!
kind regards,
Lennart
0 Comments
Answers (1)
Jon
on 22 Mar 2023
You can use nested functions to avoid recomputing your constraint values.
This topic is covered in the following documentation https://www.mathworks.com/help/optim/ug/objective-and-nonlinear-constraints-in-the-same-function.html
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!