Проблемы комбинаторики в термодинамике
Сколько способов существует для организации физической системы, состоящей из миллионов элементов? На этом уроке мы рассмотрим, как математика помогает ответить на этот вопрос в контексте термодинамики — от распределения квантов энергии в атомных системах до вычисления возможных конфигураций в масштабных системах. С использованием таких инструментов, как комбинаторика, логарифмы и формула Стирлинга, мы изучим методы работы с чрезвычайно большими числами и решения задач, которые кажутся невозможными.
Учебные цели:
По завершении урока студент сможет:
- Понять, как задачи комбинаторики применяются в контексте термодинамики, особенно в организации физических систем.
- Рассчитывать возможные конфигурации атомных систем с помощью комбинаторных чисел.
- Применять формулу Стирлинга для оценки порядка величины сложных конфигураций.
СОДЕРЖАНИЕ:
Задачи комбинаторики
Задачи с большими числами
Использование логарифмов и формулы Стирлинга для оценки порядка величины
Развитие через упрощенное приближение
Развитие через обычное приближение
Примеры комбинаторных расчетов и оценки порядка величины
Пример 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} для больших значений n, особенно когда 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 для большого n. Если 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]
И, наконец, при переходе к десятичной экспоненте:
\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}
И, наконец, переходя к десятичной экспоненте, получаем:
\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 человека. Если в городе проживает 5 миллионов человек, то сколькими способами может быть включена половина выключателей города?
Решение
Общее число выключателей света 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 порядка величины (что может показаться значительным), на фоне более чем 6,5 миллионов порядков величины это становится несущественным.
