MathOverflow is a question and answer site for professional mathematicians. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a biologist in the process of modeling a fairly simple biological system using a system of ODEs. To verify the simulations, I'm attempting to obtain an analytical steady-state solution that I can check the simulations against. My attempts so far haven't borne fruit, so I thought I'd toss the question out to mathematicians. This is my first post, so apologies if the question isn't right for this site.

The equation is of the form:

$${dS_3\over dt} = 2Xv_{max} {S_1 - {S_3^2S_7^4\over K_{eq,3}}\over K_m+S_1+{S_3^2S_7^4\over K_{eq,3}}} + D(S_{3,in} - S_3)$$

$${dS_4\over dt} = Xv_{max} {S_1 - {S_4S_7^2\over K_{eq,4}}\over K_m+S_1+{S_4S_7^2\over K_{eq,4}}} + D(S_{4,in} - S_4)$$

$${dS_1\over dt} = -Xv_{max} \Bigg[{S_1 - {S_3^2S_7^4\over K_{eq,3}}\over K_m+S_1+{S_3^2S_7^4\over K_{eq,3}}} + {S_1 - {S_4S_7^2\over K_{eq,4}}\over K_m+S_1+{S_4S_7^2\over K_{eq,4}}}\Bigg] + D(S_{1,in}-S_1)$$

$${dX\over dt} = Xv_{max}Y \Bigg[4{S_1 - {S_3^2S_7^4\over K_{eq,3}}\over K_m+S_1+{S_3^2S_7^4\over K_{eq,3}}} + 3{S_1 - {S_4S_7^2\over K_{eq,4}}\over K_m+S_1+{S_4S_7^2\over K_{eq,4}}}\Bigg] + D(X_{in}-X)$$

$${dS_7\over dt} = Xv_{max} \Bigg[4{S_1 - {S_3^2S_7^4\over K_{eq,3}}\over K_m+S_1+{S_3^2S_7^4\over K_{eq,3}}} + 2{S_1 - {S_4S_7^2\over K_{eq,4}}\over K_m+S_1+{S_4S_7^2\over K_{eq,4}}}\Bigg] + D(S_{7,in}-S_7)$$

Where S1, S3, S4 and S7 and X are variables


Km, Keq,3, Keq,4, vmax, S1,in, S3,in, S4,in, S7,in, Xin, D and Y are constants.

This system models the change in the substrate Sn or the microbial population X in a perfectly-stirred vessel with microbes acting upon a substrate S1 to produce S3, S4 and S7 when the kinetics of the chemical reactions are thermodynamically reversible.

Sn,in is the input concentration of Sn. Km and vmax are constants that describe the "affinity" of the microbe to S1 and the maximum rate of the reaction respectively and Keq,n is the thermodynamic equilibrium constant for the reaction S1 -> A Sn + B S7. I need to solve this system for Sn where n=1,3,4,7.

Is this even possible, or am I barking up the wrong tree here?

share|cite|improve this question
I presume $D$ is a constant too. Or is it a function? – Harald Hanche-Olsen Apr 22 '10 at 22:14
Sorry, D is a constant... Fixed now. – Chinmay Kanchi Apr 23 '10 at 1:07
up vote 1 down vote accepted

As Andrey mentioned, you shouldn't expect an analytical solution since you're dealing with a system of algebraic equation in several variables. (Just to be clear, what we're envisioning here is the system of equations you get by setting all the left-hand-sides to be zero). In your case, I believe you have 5 variables (X, $S_i$) and 5 equations, whose denominators can be cleared to make everything polynomial.

Such systems can be solved numerically (once you specify numerical values for your constants). One tool that I've used before is PHCpack, though for your purposes maybe Mathematica or something similar will be just fine.

Perhaps an expert can describe how to calculate resultants of your system of polynomials which will give you information on when the nature of the roots of this system change as you change your parameters...

share|cite|improve this answer
already have numerical solutions using Python and SciPy. Not being a mathematician however, figuring out analytical solutions by setting LHS=0 seemed like the best way to check if the system was programmed correctly. An expression like $S_3 = f(S_1, S_4, S_7, X)$ for each of the variables is what I'm looking for... – Chinmay Kanchi Apr 22 '10 at 19:14
Right, though what you probably mean is $S_3=f(K_m,K_{eq},\dots)$, etc. But those kinds of expressions don't exist in closed form in elementary functions for general polynomial systems, unless you have a very special set of equations. It is possible to write down perturbative series solutions which will be valid in certain regimes, though. If that would be interesting to you I might give it some thought. – j.c. Apr 22 '10 at 22:14
The values for the constants are actually known. What I'm after is a solution for each variable in terms of the other variables. It should then be possible to compute the intersection(s) of the solution-spaces to determine if my numerical solution arrives at a valid steady-state, given a particular set of constants. – Chinmay Kanchi Apr 23 '10 at 1:19
Perhaps the closest thing to what you want to do is compute the Groebner basis of the polynomial system then. Since you are using python, perhaps you would be interested in using Sage ( which contains some algorithms for computing these. – j.c. Apr 23 '10 at 1:46
Looks promising, thanks! – Chinmay Kanchi Apr 26 '10 at 13:22

Abbreviate $R_3={S_1 - {S_3^2S_7^4\over K_{eq,3}}\over K_m+S_1+{S_3^2S_7^4\over K_{eq,3}}}$ and $R_4={S_1 - {S_4S_7^2\over K_{eq,4}}\over K_m+S_1+{S_4S_7^2\over K_{eq,4}}}$. Then observing the positions of the $R$'s in your equations, set $C_1 = {1\over 2}S_3+S_4+S_1$, $C_2 = 2S_3+2S_4-S_7$ and $C_3=2YS_3+3YS_4-X$.

Then the $R$s cancel from your equations to give ${dC\over dt} = D(C_{in}-C)$ for each of $C_1$, $C_2$, and $C_3$. You can solve these explicitly, which ought to give you a good check.

In particular, if "input" means the same as "initial condition", then all three $C$'s are constants, conserved quantities.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.