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.

답변 (1개)

Star Strider
Star Strider 2018년 3월 6일
That you mention Monod kinetics and curve fitting (link) inspires me to reply. (Thank you.)
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.

카테고리

Help CenterFile Exchange에서 Nonlinear Optimization에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by