Simultaneous Constant Optimisation for Curve Fitting
3 次查看(过去 30 天)
显示 更早的评论
I have a set of 15 constants which I need to optimise to obtain a minimum WSSE (error). These constants are part of a function file which is called by an ode solver to model the concentration of different species over time, and this modelled data is compared to experimental data, so that the optimum value of the 15 constants can be determined.
Any advice on how to achieve this would be much appreciated, as doing it manually has led to finding local minimums.
EDIT: Extra info in comment.
0 个评论
回答(1 个)
John D'Errico
2024-4-12
编辑:John D'Errico
2024-4-12
Do NOT manually search through a 15 dimensional space for a solution. You are just wasting your time, and this is why tools are provided to perform optimization and such searches for you.
Use a look like nlinfit, or lsqcurvefit, or lsqnonlin. Many others too, but that is where you should be looking.
Since you comment about finding local mins, recognize that even such a tool will NOT guarantee finding a globally optimal solution. It can easily stop in a local min, as long as the local minimum does not have any direction to move to that offers an improvement in the objective. This is a function of choosing good starting values for the search. Choose crappy starting values, or even random ones, and expect randomly crappy results.
Despite the many people who plead for a way to automatically choose good starting values, that is an impossible task. Sorry. At best you can use a tool like GA to perform the search. It can improve your results, though it will take more time to perform the search.
Since I know you will ask for a direct example on how to use those tools for your problem, READ THE HELP FOR THE TOOL YOU WILL TRY TO USE. All of those tools have examples of use already provided.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!