Error in fitting two parameters with lsqnonlin

14 vues (au cours des 30 derniers jours)
Cynthia Struijk
Cynthia Struijk le 18 Sep 2019
I want to fit two parameters using lsqnonlin. I have set up my system of ODE and want to solve them with my new parameters that are found after I performed the lsqnonlin.
I think the problem has to do with the fact that my parameters are in parameter struct par and that I don't want to fit on all of these parameters, but just on basis of two of those.
This is my main script for performing the curve fitting % initial guesses for model parameters, no. of indeces is number of fitted % parameters k0 = [0.028 0.002];
Note that I want to fit for par.kb and par.kf
The error I get is:
I know my initial guesses are close enough. Does anyone know what my problem is?

Réponse acceptée

Matt J
Matt J le 18 Sep 2019
[curve_fit_parameters,RESNORM,RESIDUAL,EXITFLAG,OUTPUT,LAMBDA,JACOBIAN] =
...
lsqnonlin(@(k) fitcrit(k,time_exp, conc_exp, par, init),k0,LB,UB,options)
  3 commentaires
Cynthia Struijk
Cynthia Struijk le 18 Sep 2019
Thank you very much, I do not get any errors anymore. However, the outcoming fitted parameters seem to be my initial guessed values, but I will try to fix this myself first!
Bjorn Gustavsson
Bjorn Gustavsson le 18 Sep 2019
In addition it seems the ODE-function in the ode45-call needs to be modified to something like:
[time_model_fit,conc_model_fit] = ode45(@(t,c) CSTRSinSeries(t,c,par),time_exp,init,
[]);
The call-sequence used was the old-style method of sending in additional parameters, but since it is not to be found in the documentation (as far as I could see) it is a functionality that Mathworks might remove arbitrarily soon.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by