Parameter Estimation of 3 ODE systems with lsqcurvefit does not converge

1 view (last 30 days)
Hello
I have atttached my codes. I have used similar codes as Star Strider 's Monod kinetics and curve fitting techniques. But it does not converge. Can you please help me figure out what I am doing wrong here?
Thanks

Accepted Answer

Star Strider
Star Strider on 7 Apr 2020
First, re-define ‘alpha0’ to include the initial conditions::
alpha0 = [alpha0; 80.2;4.451e-3;4.264e-3];
and change ‘kinetics’ correspondingly so that:
c0 = alpha(end-2:end);
With those changes, it converged very quickly for me (R2020a) producing:
Local minimum possible.
lsqcurvefit stopped because the final change in the sum of squares relative to
its initial value is less than the value of the function tolerance.
<stopping criteria details>
kinetic parameters:
alpha(1) = 1160.81907
alpha(2) = 0.60175
alpha(3) = 2.38292
alpha(4) = 1.71922
alpha(5) = 1482.53287
alpha(6) = 0.21982
alpha(7) = 2.88669
alpha(8) = 2.53375
alpha(9) = 77.58045
alpha(10) = 2.62417
alpha(11) = 2.62398
If it does not produce the parameter values you expect, it would be best to use a global search, such as the genetic algorithm (ga) function. If you have the Global Optimization Toolbox, I will post a version of that code that uses ga.
  8 Comments

Sign in to comment.

More Answers (1)

gina_et_berg
gina_et_berg on 8 Apr 2020
That was a huge help. Now at least I know whatever I used manually is a better fit to my data. Thanks a lot.

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!