How do I calculate the average kinetic energy using the equipartition theorem?

1 Answer
Aug 2, 2016

DISCLAIMER: Kind of long answer, but the bottom half simply reconciles the discrepancy in the answer we get in the example.

The equipartition theorem (in the context of Physical Chemistry and Physics) is a way to assign degrees of freedom (DOFs) to a gas, assuming ideality, meaning that we assume each DOF equally contributes to the average energy.

A degree of freedom is simply a dimension in which the gas can move in the specified way. So...

  • Since we evidently live in a 3-dimensional world, the translational DOFs total #\mathbf(3)#: #x#, #y#, and #z#.
  • The rotational DOFs total #\mathbf(2)# for linear molecules (a third rotation axis would be the internuclear axis, which returns the same molecule back), or #\mathbf(3)# for nonlinear molecules (#x,y,z# rotational axes).
  • The number of vibrational modes available are #\mathbf(3N - 5)# for linear polyatomic molecules or #\mathbf(3N - 6)# for nonlinear polyatomic molecules, where #N# is the number of atoms in the molecule, but #N = 1# maximum for vibrations. Note that these may include degenerate vibrations.
  • The electronic DOFs are generally considered negligible and so it's usually fine to omit them.

Perhaps a bit confusing, but the equipartition theorem as it relates to internal energy is often written as:

#\mathbf(stackrel("Molar Internal Energy")overbrace(barU) = N/2RT)#,

where:

  • #N# is the number of DOFs (not the number of atoms in the molecule... bad coincidence).
  • #R# is the universal gas constant, #"8.314472 J/mol"cdot"K"#.
  • #T# is the temperature at which you observe the gas, in #"K"#.

EXAMPLE (MOLAR CONSTANT-VOLUME HEAT CAPACITY)

So, for our example, let's say we looked at #"CO"_2# to calculate its molar constant-volume heat capacity, #barC_V#.

According to the equipartition theorem, it has:

  • #3# translational DOFs
  • #2# rotational DOFs
  • #1# vibrational DOF (corresponding to #4# vibrational modes, i.e. stretching/bending motions) is presumed to be accounted or, but two are degenerate---same in energy.
    http://i.stack.imgur.com/

Therefore, #"CO"_2# has #\mathbf(6)# DOFs; the equipartition theorem tells us that #N ~~ 6#. As it turns out, #barC_V# can be approximated from the DOFs in accordance with the equipartition theorem:

#\mathbf(barC_V = barC_(V,"trans") + barC_(V,"rot") + barC_(V,"vib"))#

#~~ \mathbf(N/2R)#, where #R# is the universal gas constant.

#=> 3/2R + 2/2R + R = \mathbf(7/2R) ~~ color(green)("29.099 J/mol"cdot"K")#.

The actual #barC_V# of #"CO"_2# though, is more like #color(green)("28.908 J/mol"cdot"K")#, if you convert it from this source, so this is an overestimate of the true answer.


CAVEAT ABOUT EQUIPARTITION THEOREM ON POLYATOMIC MOLECULAR GASES

It's worth mentioning that the equipartition theorem is not particularly accurate on polyatomic molecular gases when it comes to their vibrational DOF.

It often overestimates on #barC_(V,"vib")#, the vibrational component of #barC_V#.

To get #barC_(V,"vib")# more accurately for linear polyatomic molecules, I have this equation from my lab manual:

#\mathbf(barC_(V,"vib") = Rsum_(i = 1)^(3N - 5)[g_i((theta_i)/T)^2 e^(-theta_i"/"T)/(1-e^(-theta_i"/"T))^2])#

where:

For nonlinear polyatomics, just replace #3N - 5# with #3N - 6#. For #"CO"_2#:

  • #3N - 5 = 4#.
  • The symmetric stretch (mode #1#) has #g_i = 1#.
  • The asymmetric stretch (mode #2#) has #g_i = 1#.
  • The bends have #g_i = 2#.
  • #theta_1 = "1890 K"#
  • #theta_2 = "3360 K"#
  • #theta_(3,4) = "954 K"# (doubly-degenerate)

So at #"298.15 K"#, we have this hefty calculation (try storing variables and recalling them if that helps):

#barC_(V,"vib") = R[stackrel("Symmetric Stretch")overbrace(((("1890 K")/("298.15 K"))^2(e^(-1890"/"298.15)/(1-e^(-1890"/"298.15))^2))) + stackrel("Asymmetric Stretch")overbrace(((("3360 K")/("298.15 K"))^2(e^(-3360"/"298.15)/(1-e^(-3360"/"298.15))^2))) + stackrel("Two Degenerate Bends")overbrace(2*((("954 K")/("298.15 K"))^2(e^(-954"/"298.15)/(1-e^(-954"/"298.15))^2)))]#

Eventually, you should get #color(green)(barC_(V,"vib") = 0.9822R)# (and not #R#, like the equipartition theorem would have given you).

So, the corrected value of #barC_V# is now:

#color(blue)(barC_V) = 3/2R + 2/2R + 0.9822R = 3.4822R#

#= color(blue)("28.953 J/mol"cdot"K")#

And indeed, even closer! (less than #0.2%# error.)