フィルターのクリア

Monod kinetics and curve fitting

184 ビュー (過去 30 日間)
kknd
kknd 2012 年 7 月 12 日
コメント済み: Star Strider 2024 年 4 月 14 日
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:
  1. dS/dt = (mmax * X * S)/(Y * (Ks + S)
  2. 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
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
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
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
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 ExchangeGet Started with Curve Fitting Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by