I'm helping my son with Matlab as he is having trouble learning differential equations as they apply to chemical kinetics. His task is to solve for the equilibrium concentrations for a reaction

$$\ce{A + B <=>[$k_{\mathrm{f}}$][$k_{\mathrm{b}}$] C}.$$

We are given the forward and backward rates and the initial concentrations of the reactants and products. I helped him to set up the required equations and ran them through the ode integrator in R and Matlab but the results don't look right. I'm pretty sure the integration process is working so I think maybe the actual formulae are wrong:

\begin{align} \frac{\mathrm{d[A]}}{\mathrm{d}t} &= {k}_\mathrm{b}[C]-{k}_\mathrm{f}[A][B]\\ \frac{\mathrm{d[B]}}{\mathrm{d}t} &= {k}_\mathrm{b}[C]-{k}_\mathrm{f}[A][B]\\ \frac{\mathrm{d[C]}}{\mathrm{d}t} &= {k}_\mathrm{f}[A][B] -{k}_\mathrm{b}[C] \end{align}

When I run this through the integrator with $k_\mathrm{f}=3$, $k_\mathrm{b}=1.5$, $[A]=\pu{1M}$, $[B]=\pu{1M}$, and $[C]=0$, the concentrations all reach equilibrium at the same level of $\pu{0.5M}$. Is that correct? I would have expected them to be different with the forward rate being bigger.

Really sorry for the basic question but as I said, I'm a programmer not a chemist. I got the formulae from this How to set up an equation to solve a rate law computationally? but assumed that I didn't need to square any of the concentrations since the reaction is $\ce{1+1<=>1}$.

  • $\begingroup$ Your son can check whether it is correct. At equilibrium the changes are zero, and your system of differential equation did reach equilibrium. The higher forward rate is offset by being multiplied by 0.5 twice. $\endgroup$
    – Karsten
    May 11, 2021 at 15:44

3 Answers 3


If all you want to find is the final concentration of all the species at equilibrium, then you don't need to solve these differential equations. n equilibrium constant $K_\mathrm{eq}:$

$$K_\mathrm{eq} = \frac{k_\mathrm{f}}{k_\mathrm{b}}\tag{1}$$


$$K_\mathrm{eq} = \frac{\prod a_j^{\nu_j}}{\prod a_i^{\nu_i}},\tag{2}$$

where $a_i$ and $a_j$ are the activities of reactants and products, respectively; $\nu_i$ and $\nu_j$ are the stoichiometric coefficients of reactants and products, respectively.

So for your case we can set the equations as such:

$$ \begin{align} \begin{array}{cccccc} & \ce{A} & \ce{+} & \ce{B} & \ce{<=>} & \ce{C}\\ \text{Initial} & \pu{1 M} & & \pu{1 M} & & \pu{0 M}\\ \text{Final} & (1-x)\pu{M} & & (1-x)\pu{M} & & x\pu{M} \end{array} \end{align} $$ $$ \begin{align} K_\mathrm{eq}&=\frac{[\ce{C}]}{[\ce{A}][\ce{B}]}\\ \frac{k_\mathrm{f}}{k_\mathrm{b}}&=\frac{[\ce{C}]}{[\ce{A}][\ce{B}]}\\ 2&=\frac{x}{(1-x)^2}\\ 2x^2-5x+2&=0\\ (2x^2-4x)+(-x+2)&=0\\ (2x-1)(x-2)&=0\\ x&\in \{\pu{0.5M}, \pu{2M}\}\\ \end{align} $$

But as $[\ce{B}]\geq \pu{0}$, $x$ has to be equal to $\pu{0.5 M}$.

Which gives, $[\ce{A}]=[\ce{B}]=[\ce{C}]=\pu{0.5 M}$.

This also shows that your solving of differential equations was also correct!

  • $\begingroup$ Thanks for your answer. I agree a closed-form sulution is simpler but the exercise required that we use an ODE solver. $\endgroup$ May 11, 2021 at 10:17

To complement Nisarg's answer, note that we have the following system of polynomial ODEs

$$\begin{bmatrix} \dot a \\ \dot b \\ \dot c\end{bmatrix} = \left( 3 a b - \frac32 c \right) \begin{bmatrix} -1\\ -1\\ +1\end{bmatrix}$$

Thus, given an initial state, the state will flow along a given line. Since concentrations must be non-negative, given an initial state, the set of all states is a line segment (one of whose endpoints is to be determined) in the non-negative octant. Equilibrium is found at the algebraic surface defined by

$$3 a b - \frac32 c = 0$$

Suppose that the initial state is $(1,1,0)$. Pictorially,

plotted using macOS Grapher2

where the equilibrium point is $\left( \frac12, \frac12, \frac12 \right)$.


It is reasonable to be confused by this. The behaviour of these sorts of reactions is counter intuitive if you don't have a chemistry background, and it doesn't help that it is sort of obscured by the particular choice of numbers in the assignment.

Looking at it naively, you might expect that because the forward rate is twice the backward rate, the final equilibrium should be 2:1 products:starting materials. But this is only true when the overall number of molecules is conserved.

This reaction is bimolecular in the forward direction and unimolecular in the reverse. That means in order to react in the forward direction, a molecule of A and a molecule of B must find each other and collide, but in the backwards direction a molecule of C can spontaneously decide to split.

Ask yourself - what happens to this reaction when it is highly diluted, and molecules of A and B rarely interact? How easy is it to form C in the first place? Is the rate of C splitting apart affected?

Conversely, what happens when A and B are jam-packed in a concentrated syrup? What happens to the rate of formation of C when the solution is nothing but A and B all colliding with each other, along with the minimum number of solvent molecules needed to keep everything in solution?

This reaction is concentration dependent. The more concentrated it is, the faster A and B will find each other, while the rate of C splitting up remains the same. The equilibrium therefore shifts towards C with increasing concentration.

You can see it in the equation: $$K_{eq}=\frac{[\ce{C}]}{[\ce{A}][\ce{B}]}\\\\$$ Assuming [A] = [B], the equilibrium is affected linearly with the concentration of the product, but with the square of the concentrations of the starting materials.

As it happens, a concentration of 1 M is quite concentrated, relative to what an organic chemist might actually use in an experiment. If all the starting concentrations were at 0.1 M instead, the equilibrium concentrations would be at [A],[B] = 0.085 and [C] = 0.015 respectively. A 5.66:1 ratio of starting material to product, even though we haven't altered K at all.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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