Monod kinetics and curve fitting
70 次查看(过去 30 天)
显示 更早的评论
Hi to everyone!
I think i should start immediately with a short description of what i' m dealing with. I have a system of two (2) equations. Generally, these equations are expressed as following:
- dS/dt = (mmax * X * S)/(Y * (Ks + S)
- dX/dt = (mmax * X * S)/ (Ks + S) - (b * X)
S = So and X = Xo
In the laboratory, i' ve measured concentration values versus time, e.g. (t, S). Moreover, i know the initial value Xo. As a result, i' m trying to estimate all the other parameters.
So the problem is how do i solve the differential equation system and then use this solution for the curve fitting procedure? I tried simbiology and the absence of a constraint search for the best solutions leads to estimates with no physical meaning.
What should i try next? Perhaps the solution is associated with non linear fitting tools, but i would like a more specific answer by an experienced user, before i start the effort.
Thank you in advance!
1 个评论
Star Strider
2017-5-17
PLEASE do not post new Questions here as Comments or Answers related to this Question.
Post new Questions, and copy the URL here as a reference.
采纳的回答
Star Strider
2012-7-12
编辑:Star Strider
2012-7-12
The differential equations may have long since been integrated and published:
so all you need to do is fit them to your data. (They are both free PDFs.) I didn't look through the lists in the articles to be sure they have specifically integrated the equations you're interested in fitting.
I can't claim to be an experienced user with respect to fitting chemical kinetics data, since I haven't done anything with chemical kinetics in a while, but I'm familiar with MATLAB's nonlinear curve fitting routines. Either ‘nlinfit’, ‘lsqcurvefit’, or others should be able to estimate the parameters you want. They can also provide confidence intervals on the parameter estimates with ‘nlparci’ and the fitted estimates with ‘nlpredci’.
13 个评论
TheGymnopedist
2024-4-14
Hi, thanks for the useful solution; however I am getting an error.
"Error using lsqcurvefit. Function value and YDATA sizes are not equal."
This is because although the 2 matricies have the same number of columns (23), but different numbers of rows between ydata (8) and the function value (number varies due to ode solver).
Do you have any suggestions as to how to solve this issue?
Star Strider
2024-4-14
The result of the integration has to match the size of the dependent variable matrix. The ODE solver should not have any effect on this, however if the solver detects a singularity, it will stop and the resulting matrix sizes (specifically the row sizes) will not be equal. The solution for that is to keep trying different initial parameter estimates to lsqcurvefit until you get a set that works. (Functions in the Global Optimization Toolbox can make this easier.) Fitting an (Nx23) data matrix is likely going to be a problem.
Later versions of this approach (for example Parameter Estimation for a System of Differential Equations) estimate the initial conditions as well, so consider that option.
Without knowing more about your particular data and model, I cannot offer specific guidance. For that, it would be best for you to provide that in a new question post rather than pursue it here, posting he code for your differential equations and attaching your data. Also consider using one of the stiff solvers (for example ode15s) in the event that your paraameters have widely-varying magnitudes (several orders-of-magnitude difference). And of course, check your differential equations code for errors, since that can be a source of problems.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!