How to solve two coupled first order ODEs and use the solution (through curve fitting to experimental data) to optimize the parameters through fminsearch
1 次查看(过去 30 天)
显示 更早的评论
I am solving two coupled ODEs with the intention of optimising the parameters of the analytical solution using fminsearch. I am also following the example of Monod kinetics and curve fitting. However both the Monod example and my solution gives various errors, as I try different things to solve the problem. I can not figure out where am I going wrong.
See the attached m-files.
0 个评论
回答(1 个)
Star Strider
2018-3-6
The lambertw function could be a problem with respect to fitting your equation system. It is not always possible to use fminsearch (even though it is ‘derivative-free’) and other such optimisation functions and achieve a reasonable result.
If you have the Global Optimization Toolbox, I have found the ga function (see this Comment to HELP ME PLEASE! How to find parameter estimation with fminsearch? (link)) to provide good results. I used a very large, random, initial population. I got a very good fit to the data. It took a while, and as I see it, the time was well spent.
Gradient-descent nonlinear parameter estimation routines are sensitive to the initial parameter estimates, whereas ga, given a large initial population and enough time, will converge on the best result possible. If you don’t have access to the ga function, simple unconstrained genetic algorithm codes are relatively easy to write. (If it is not already obvious, I really like genetic algorithm optimisations!)
I have not run your code, or experimented with using ga to optimise it. I leave this for you to experiment with first.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interpolation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!