热力学中的组合问题
一个由数百万个元素组成的物理系统有多少种不同的组织方式?在本节课中,我们将探讨数学如何在热力学背景下回答此类问题,从原子系统中能量量子的分布到大规模系统的可能配置计算。我们将利用组合数学、对数以及斯特林公式等工具,探索如何处理极其庞大的数字并解决看似难以攻克的问题。
学习目标:完成本节课后,学生将能够:
- 理解组合问题如何在热力学背景下应用,尤其是在物理系统的组织中。
- 计算通过组合数方法求解原子系统的可能配置。
- 应用斯特林公式估算复杂配置的数量级。
内容目录:
组合问题
涉及大数的问题
使用对数和斯特林公式进行数量级计算
通过简化近似法展开
通过常规近似法展开
组合计算与数量级计算示例
案例 1: 大阶乘
案例 2: 大组合
在某些物理情境中,一个常见问题是:给定的系统可以以多少种不同方式进行组织?这些组合问题在热力学中非常常见。尽管乍看之下这些问题很简单,但一旦涉及到如阿伏伽德罗数 N_A 这样的极大数值时,处理这些问题的复杂性就会骤然增加,展现出解决此类问题的数学挑战。
组合问题
为了理解涉及热力学中组合问题的规模,我们来看下面这个例子:
示例:能量量子的分布组合
假设一个由 10 个原子组成的系统。每个原子只能存储 1 或 0 个能量单位,称为能量量子。如果我们有 (a) 10 个能量量子和 (b) 5 个能量量子,问这些量子可以以多少种不同的方式分布?
解答
我们将原子表示为可用来存储一个能量量子的空间。如果某个空间已满,则表示对应的原子已经拥有了它的能量量子。
为了计算 k 个能量量子分布到 n 个空间中的方式数量,我们使用组合数公式:
\displaystyle \binom{n}{k}=\dfrac{n!}{k!(n-k)!}
此公式为我们提供了可能状态数量 \Omega。
(a) 如果有 10 个量子分布到 10 个空间中,那么只有一种分布方式。因此,\Omega=1:
\displaystyle \Omega = \binom{10}{10}=\dfrac{10!}{10!(10-10)!} = \dfrac{10!}{10!0!} = 1
(b) 对于 5 个量子分布到 10 个空间,我们进行如下计算:
\begin{array}{rl} \Omega &= \displaystyle\binom{10}{5} \\ \\ &=\dfrac{10!}{5!(10-5)!} = \dfrac{10!}{5!\cdot 5!} \\ \\ &= \dfrac{5! \cdot 6\cdot 7\cdot 8 \cdot 9\cdot 10}{5! \cdot 2\cdot 3\cdot 4\cdot 5} \\ \\ &= \dfrac{ 7\cdot 8 \cdot 9\cdot 10}{ 4\cdot 5} = 7\cdot 2 \cdot 9 \cdot 2 = 252 \end{array}
因此,总共有 252 种可能的配置。
涉及大数的问题
我们刚才分析的内容只是一个开始。如果我们将案例 (b) 的系统扩展到包含 100 个原子和 50 个能量量子,我们会得到 \Omega \approx 10^{28}。现在,试想如果我们用一个摩尔的原子进行同样的计算,其结果将是难以想象的。
使用对数和斯特林公式进行数量级计算
当我们希望估算形如 \Omega = \binom{n}{k} 的数量级,尤其是在 k=n/2 的情况下(此时达到最大值),使用斯特林公式的对数近似法非常有用。
为了处理如此大的数字,我们可以通过取对数重新表述计算过程:
\displaystyle \ln(\Omega)=\ln\left(\dfrac{n!}{k!(n-k)!}\right)= \ln(n!) - \ln((n-k)!) - \ln(k!)
这个表达式可以通过斯特林公式的阶乘对数近似来处理,其中有两种可能的版本:常规近似和简化近似:
- 常规近似: \ln(n!) \approx \dfrac{1}{2}\ln(2n\pi) + n\ln(n) - n
- 简化近似: \ln(n!) \approx n\ln(n) - n
通过简化近似法展开
使用简化近似法,可以得到以下结果:
\begin{array}{rl} \ln(\Omega) & \approx n\ln(n) - n - (n-k)\ln(n-k) + (n-k) - k\ln(k) + k \\ \\ &= n\ln(n) - (n-k)\ln(n-k) - k\ln(k) \\ \\ &= n\ln(n) - n\ln(n-k) + k\ln(n-k) - k\ln(k) \\ \\ &= \ln\left[ \left( \dfrac{n}{n-k} \right)^n \right] + k\ln\left( \dfrac{n-k}{k} \right) \\ \\ &= \ln\left[ \dfrac{1}{\left(1 - \dfrac{k}{n} \right)^n} \right] + k\ln\left( \dfrac{n}{k} - 1 \right) \end{array}
考虑到 n 值较大,可以应用以下关系:
\displaystyle \lim_{n\to\infty} \left(1-\dfrac{k}{n} \right)^n = e^{-k}
因此:
\ln(\Omega) \approx \ln(e^k) + k\ln\left( \dfrac{n}{k} -1 \right) = k + k\ln\left( \dfrac{n}{k} -1 \right)
最终,通过对数换底,得到:
\log(\Omega) = \log(e)\ln(\Omega) \approx k\log(e)\left[1 + \ln\left( \dfrac{n}{k} - 1 \right) \right]
结果为:
\boxed{\Omega \approx 10^{k\log(e)\left[1 + \ln\left( \dfrac{n}{k} - 1 \right) \right]}}
虽然这一结果未提供 \Omega 的确切值,但它可以估算出需要多少位数来表示结果,并且当 n 变得更大时精确度也会提高。
此外,该方法能快速估算出 \Omega 的最大值。当 k=n/2 时,得到:
\text{Max}\left(\Omega\right) \approx 10^{\dfrac{n}{2}\log(e)\left[1 + \ln\left( \dfrac{n}{n/2} - 1 \right) \right]} = 10^{ n\log(e)/2 }
通过常规近似法展开
虽然通过常规近似法展开可以得到更精确的结果,但它会涉及额外的计算步骤。然而,对于较大的 n 值,这些结果与简化近似法的结果大致相同。以下是基于简化近似法的基础进行的推导:
\begin{array}{rcl} \ln(\Omega) & = & \ln\left(\dfrac{n!}{k!(n-k)!}\right)= \ln(n!) - \ln((n-k)!) - \ln(k!) \\ \\ & \approx & \color{red}\dfrac{1}{2}\ln(2n\pi)\color{black} + n\ln(n) - n \\ \\ & & \color{red}-\dfrac{1}{2}\ln(2(n-k)\pi)\color{black} - (n-k)\ln(n-k) + (n-k) \\ \\ & & \color{red}-\dfrac{1}{2}\ln(2k\pi)\color{black} - k\ln(k) + k \end{array}
红色部分是常规近似法中额外考虑的项,其余部分与简化近似法的结果一致。由此可得:
\begin{array}{rcl} \ln(\Omega) & \approx & \color{red}\dfrac{1}{2}\ln\left( \dfrac{2n\pi}{2(n-k)\pi \cdot 2k\pi} \right)\color{black} + k + k\ln\left(\dfrac{n}{k} - 1\right) \\ \\ & = & k + k\ln\left(\dfrac{n}{k} - 1\right) - \dfrac{1}{2}\ln\left(\dfrac{2k\pi(n-k)}{n}\right) \end{array}
然后,使用对数换底法得到:
\log(\Omega) = \log(e)\ln(\Omega) \approx \log(e) \left[ k + k\ln\left(\dfrac{n}{k} - 1\right) - \dfrac{1}{2}\ln\left(\dfrac{2k\pi(n-k)}{n}\right) \right]
最终,取以 10 为底的指数可以得到:
\Omega \approx 10^{\log(e) \left[ k + k\ln\left(\dfrac{n}{k} - 1\right) - \dfrac{1}{2}\ln\left(\dfrac{2k\pi(n-k)}{n}\right) \right]}
类似于之前的情况,我们可以通过将 k=n/2 代入来找到此数的最大值,结果如下:
\begin{array}{rcl} \text{Max}(\Omega) &\approx & 10^{\log(e) \left[ \dfrac{n}{2} + \dfrac{n}{2}\ln\left(\dfrac{n}{(n/2)} - 1\right) - \dfrac{1}{2}\ln\left(\dfrac{2(n/2)\pi(n-n/2)}{n}\right) \right]} \\ \\ & = & 10^{\log(e) \left[\dfrac{n}{2} - \dfrac{1}{2}\ln\left(\dfrac{n\pi}{2} \right) \right]} = 10^{\log(e)(n-\ln(n\pi/2))/2} \end{array}
组合计算与数量级计算示例
案例 1: 大阶乘
估算 \left(10^{50}\right)! 的数量级,即书写该数值所需的位数。
解答
为了进行该计算,我们使用斯特林公式如下:
\begin{array}{rl} \ln\left[ \left(10^{50}\right)! \right] &\approx 10^{50}\ln\left(10^{50}\right) - 10^{50}\\ \\ &= \left[\ln\left(10^{50}\right) -1\right]10^{50} \\ \\ &= \left[50\ln(10)-1 \right]10^{50} \\ \\ \end{array}
接下来,我们应用对数换底公式:
\ln\left[ \left(10^{50}\right)! \right] = \dfrac{\log\left[\left(10^{50}\right)!\right]}{\log{e}}
因此:
\log\left[ \left(10^{50}\right)! \right] \approx \log(e)\left[50\ln(10)-1 \right]10^{50}
最后,取以 10 为底的指数,得到:
\left(10^{50}\right)! \approx 10^{\log(e)\left[50\ln(10)-1 \right]10^{50}} = 10^{49,5657 \cdot 10^{50}}
该数的数量级由其以 10 为底的指数决定,表明 \left(10^{50}\right)! 是一个非常庞大的数字。
案例 2: 大组合
一所普通住宅约有 12 个电灯开关,这些开关可以处于打开或关闭状态。平均每所住宅有 4 个人。如果一座城市有 500 万人口,问这座城市中有一半开关打开的所有可能情况有多少种?
解答
城市中总开关数 n 为:
\begin{array}{rcl} n &=&\dfrac{\text{城市总人口}}{\text{每户人数}} \times \text{每户开关数} \\ \\ &=& \dfrac{5\cdot 10^6}{4}\cdot 12 = 15\cdot 10^6 \end{array}
所有开关中一半打开时的微观态数目 \Omega_{max},可以通过两种方法估算:
- 常规近似估算: \Omega_{max} = 10^{\log(e)\left[15\cdot10^6 - \ln\left(15\pi\cdot10^6 / 2 \right) \right]/2} \approx 10^{6.514.413,542}
- 简化近似估算: \Omega_{max} = 10^{\log(e)\left[15\cdot10^6 \right]/2} \approx 10^{6.514.417,229}
虽然两种近似结果之间相差约 4 个数量级(看似巨大),但与超过 650 万数量级的规模相比,这点差距显得微不足道。
