Need help with mathematical optimization - fmincon
2 次查看(过去 30 天)
显示 更早的评论
I have developed a simulation code that predicts strength value for different designs. It takes in a variable (factors that define the design) and spits an output value. This code requires 4 constants that I need to find. I have few experimental datapoints, and I was hoping to use them to obtain these 4 constants.
I have experimental data for 7 different cases of inputs. I tried to obtain the constants by setting up an error function and running 'fmincon' on it to minimize the error. I did not get any output for 5 days, so I quit the program. I ran the same fmincon function for only one case. This took about 20 hours, but gave me an output. I do not get same constants when I run the code individually for these 7 different cases.
Now, I am looking for a more robust way to obtain these constants.
Each run for my code takes about 15 mins to give me a value
My code is complex and needs to be simplified/optimized, however I am currently focusing my efforrts on finding the best way to find these constants.
This is for a research work, so I would greatly appreciate suggestions/comments on standard ways to do this.
0 个评论
回答(2 个)
Alan Weiss
2020-7-2
Your problem sounds natural for the surrogateopt solver in Global Optimization Toolbox. In particular, fmincon is a gradient-based solver, and quite frequently simulations are not as smooth as this solver wants. Also, surrogateopt can use checkpointing which can help you recover from a crash or other issue with an optimization.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
0 个评论
Zaikun Zhang
2020-7-14
Your problem is a simulation-based optimization problem.
You may try PDFO ( https://www.mathworks.com/matlabcentral/fileexchange/75195-pdfo-powell-s-derivative-free-optimization-solvers ), which contains solvers particularly designed for simulation-based optimization by late Professor M. J. D. Powell ( https://en.wikipedia.org/wiki/Michael_J._D._Powell ).
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Nonlinear Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!