Skip to content
33 changes: 14 additions & 19 deletions physics/speeds_of_gas_molecules.py
Original file line number Diff line number Diff line change
@@ -1,46 +1,39 @@
"""
r"""
The root-mean-square, average and most probable speeds of gas molecules are
derived from the Maxwell-Boltzmann distribution. The Maxwell-Boltzmann
distribution is a probability distribution that describes the distribution of
speeds of particles in an ideal gas.

The distribution is given by the following equation:

-------------------------------------------------
| f(v) = (M/2πRT)^(3/2) * 4πv^2 * e^(-Mv^2/2RT) |
-------------------------------------------------
.. math:: f(v) = \left(\frac{M}{2 \pi RT}\right)^{\frac{3}{2}} \cdot 4 \pi v^2
\cdot e^{-\frac{Mv^2}{2RT}}

where:
f(v) is the fraction of molecules with a speed v
M is the molar mass of the gas in kg/mol
R is the gas constant
T is the absolute temperature
* :math:`f(v)` is the fraction of molecules with a speed :math:`v`
* :math:`M` is the molar mass of the gas in kg/mol
* :math:`R` is the gas constant
* :math:`T` is the absolute temperature

More information about the Maxwell-Boltzmann distribution can be found here:
https://en.wikipedia.org/wiki/Maxwell%E2%80%93Boltzmann_distribution

The average speed can be calculated by integrating the Maxwell-Boltzmann distribution
from 0 to infinity and dividing by the total number of molecules. The result is:

---------------------
| vavg = √(8RT/πM) |
---------------------
.. math:: v_{avg} = \sqrt{\frac{8RT}{\pi M}}

The most probable speed is the speed at which the Maxwell-Boltzmann distribution
is at its maximum. This can be found by differentiating the Maxwell-Boltzmann
distribution with respect to v and setting the result equal to zero. The result is:
distribution with respect to :math:`v` and setting the result equal to zero.
The result is:

---------------------
| vmp = √(2RT/M) |
---------------------
.. math:: v_{mp} = \sqrt{\frac{2RT}{M}}

The root-mean-square speed is another measure of the average speed
of the molecules in a gas. It is calculated by taking the square root
of the average of the squares of the speeds of the molecules. The result is:

---------------------
| vrms = √(3RT/M) |
---------------------
.. math:: v_{rms} = \sqrt{\frac{3RT}{M}}

Here we have defined functions to calculate the average and
most probable speeds of molecules in a gas given the
Expand All @@ -57,6 +50,7 @@ def avg_speed_of_molecule(temperature: float, molar_mass: float) -> float:
and returns the average speed of a molecule in the gas (in m/s).

Examples:

>>> avg_speed_of_molecule(273, 0.028) # nitrogen at 273 K
454.3488755020387
>>> avg_speed_of_molecule(300, 0.032) # oxygen at 300 K
Expand Down Expand Up @@ -84,6 +78,7 @@ def mps_speed_of_molecule(temperature: float, molar_mass: float) -> float:
and returns the most probable speed of a molecule in the gas (in m/s).

Examples:

>>> mps_speed_of_molecule(273, 0.028) # nitrogen at 273 K
402.65620701908966
>>> mps_speed_of_molecule(300, 0.032) # oxygen at 300 K
Expand Down
Loading