# Belousov-Zhabotinsky reaction

Belousov-Zhabotinsky reaction [1] is a chemical reaction, or more precisely a reaction family, known for exhibiting temporal and spatial oscillations.

This reaction is one of the classical examples of the natural non-linear oscillations. Another prominent example is the previously analyzed prey-predator interactions in the ecosystem. Interestingly enough despite being of a very different nature both of these example can be modeled using Lotka-Volterra equations.

In this text we will also consider certai cellular automaton, which replicates the spatial oscillations seen in some of the Belousov-Zhabotinsky reactions.

## Belousov-Zhabotinsky reaction and Lotka-Volterra equations

In the most simplest and general case Belousov-Zhabotinsky reaction can be described by the following chain of chemical reactions:

\begin{equation} A_1 + X_1 \rightarrow 2 X_1 + A_2, \end{equation}

\begin{equation} X_1 + X_2 \rightarrow 2 X_2 + A_3, \end{equation}

\begin{equation} X_2 \rightarrow A_4 , \end{equation}

here \( X_i \) are the main chemical ingredients, while \( A_i \) are secondary chemical ingredients (which are needed for reactions to occur, or which are the product of these reactions).

From the above should be evident that \( X_1 \) concentration increases proportionally to \( k_1 C_{a1} C_{x1} \) (the first reaction in the chain) and decreases proportionally to \( k_2C_{x1} C_{x2} \) (the second reaction in the chain). Mathematically this can be written as ordinary differential equation:

\begin{equation} \mathrm{d} C_{x1} = \left[ k_1 C_{a1} C_{x1} - k_2C_{x1} C_{x2} \right] \mathrm{d} t. \end{equation}

Here we use \( C_i \) for concentrations, where \( i \) is the index of ingredient (ex., "x1" stands for \( X_1 \)). The rates of reaction is denoted as \( k_i \), where \( i \) is a number of reaction in the chain.

The second reaction increases \( X_2 \) concentration proportionally to \( k_2 C_{x1} C_{x2} \). The concentration of \( X_2 \) decreases due to the third reaction and proportionally to \( k_3 C_{x2} \). Mathematically this can be expressed as:

\begin{equation} \mathrm{d} C_{x2} = \left[ k_2 C_{x1} C_{x2} - k_3C_{x2} \right] \mathrm{d} t. \end{equation}

Now compare these two ordinary differential equation and Lotka-Volterra equations! The \( C_{a1} \) can be assumed to be a constant model parameter for the sake of comparison.

## Cellular automaton

The cellular automaton model for the Belousov-Zhabotinsky reaction was proposed by A. K. Dewdney in [2]. The rules were set as follows:

- If the cell is in state 1, then it changes its state to the \( [a / k_1]+[ b / k_2 ]+1 \) state, where \( a \) is a number of cells in the intermediate states (namely larger than 1 and smaller than 255), while \( b \) is a number of cells in the 255 state. \( k_1 \) and \( k_2 \) are the model parameters, which should be in the range from 1 to 8. The square brackets extracts integer from a real number (t.y. \( [2.5]=2 \)).
- If the cell is in state 255, then it changes its state to 1.
- The cells in the intermediate states (namely larger than 1 and smaller than 255), switch to \( [ S / (a+b+1) ]+g \), where \( a \) and \( b \) are the same as before, while \( S \) are the sum of the states of the nearest 8 neighbors. \( g \) is a parameter set by user, it should be integer number larger than 1, but smaller than 255.

These rules should be applied synchronously to all cells in the grid.

## Browser applet

Note that not all parameter sets provide "good" results (the ones reminiscent to the those seen in YouTube video). Also note that the grid is torus.

## References

- A. M. Zhabotinsky. Belousov-Zhabotinsky reaction. Scholarpedia 2: 1435 (2007). doi: 10.4249/scholarpedia.1435.
- A. K. Dewdney. The hodge-podge machine makes waves. Scientific American, August 1988: 104-107.