Created by: roberto.c.alfredo on Aug 5, 2025, 3:02 AM
1. ¿Por qué Maxwell puso un "demonio" en su termómetro? 🤔
En 1871, James Clerk Maxwell retó la intuición de sus colegas: ¿y si un ser microscópico pudiera abrir y cerrar una puerta entre dos cámaras de gas, dejando pasar solo moléculas rápidas a un lado y lentas al otro? Al acumular moléculas energéticas en una cámara, parecería obtenerse un gradiente de temperatura sin aportar trabajo externo, lo cual amenazaba la segunda ley de la termodinámica:
«Es imposible un proceso que solo transfiera calor de un cuerpo frío a uno caliente sin trabajo externo».
Maxwell usó su demonio como experimento mental para mostrar que la segunda ley descansa en supuestos estadísticos y de información, no solo mecánicos.
2. Principio termodinámico y coste de información 📐
- Segunda ley:
$$\Delta S_{total} = \Delta S_{gas} + \Delta S_{demonio} \ge 0$$
- Landauer (1961): borrar 1 bit de información cuesta $$E_{min} = k_B T \ln 2$$ donde \(k_B\) es la constante de Boltzmann. Este es el “precio” que el demonio paga al clasificar moléculas.
3. Modelo en Python: demostrar el dilema 🐍
import numpy as np
import matplotlib.pyplot as plt
# Parámetros
N = 1000 # número de moléculas
T0 = 1.0 # temperatura inicial (unidades)
v_th = 1.0 # umbral velocidad
t_steps = 6000 # pasos de simulación
kB = 1.0 # constante de Boltzmann
E_bit = kB * T0 * np.log(2) # coste por bit
# Estado inicial
vel = np.random.randn(N) * np.sqrt(T0)
side = np.zeros(N, int) # 0 = izq, 1 = der
# Registros
deltaT = []
cost = []
E_acc = 0.0
for t in range(t_steps):
# 1) Demonio clasifica una molécula al azar
i = np.random.randint(N)
if side[i] == 0 and vel[i] > v_th:
side[i] = 1
E_acc += E_bit
elif side[i] == 1 and vel[i] < -v_th:
side[i] = 0
E_acc += E_bit
# 2) Registro de temperaturas (energía cinética media)
KE0 = np.mean(vel[side == 0]**2) / 2
KE1 = np.mean(vel[side == 1]**2) / 2
deltaT.append(KE0 - KE1)
cost.append(E_acc)
# Graficar resultados
plt.figure(figsize=(8,6))
plt.subplot(2,1,1)
plt.plot(deltaT)
plt.title('ΔT = T_izq - T_der vs. Paso')
plt.ylabel('ΔT')
plt.subplot(2,1,2)
plt.plot(cost)
plt.title('Coste acumulado del demonio')
plt.ylabel('Energía')
plt.xlabel('Paso')
plt.tight_layout()
plt.show()
Figura 1. Evolución de \( \Delta T = T_{\mathrm{izq}} - T_{\mathrm{der}} \) (arriba), que se vuelve más negativa cuando el demonio concentra moléculas rápidas en la derecha; abajo, el coste acumulado \( E_{\text{acc}} \) crece casi linealmente con cada bit borrado — la segunda ley siempre pasa la factura. 🧾🔥
3.1 El bit olvidadizo del demonio 🧠
Después de clasificar cada molécula, el demonio debe borrar su bit de memoria para estar listo para la siguiente medición. Ese reseteo es lo que cuesta \(k_B T \ln 2\). En un gas real las colisiones vuelven a mezclar las energías, de modo que el demonio debe medir-borrar en cada instante, pagando continuamente y asegurando que la segunda ley siga mandando.
4. ¿Qué vemos? 📊
- Gradiente inicial (ΔT negativo): Con cada clasificación, la cámara derecha recibe moléculas más rápidas, por lo que \[ T_{\text{der}} \uparrow \quad\Longrightarrow\quad \Delta T = T_{\text{izq}} - T_{\text{der}} \] se vuelve más negativo.
- Pago informativo: El coste acumulado \[ E_{\text{acc}} = n_{\text{bits}}\;k_B\,T\,\ln 2 \] crece linealmente con cada bit borrado, mostrando el peaje termodinámico del demonio.
5. Cierre termodinámico ⚖️
Aunque el demonio ordena el gas (disminuye su entropía local), paga ese orden con un aumento de entropía en su memoria al borrar información. En conjunto:
$$ \Delta S_{gas} < 0,\quad \Delta S_{demonio} > 0,\quad \Delta S_{total} = \Delta S_{gas} + \Delta S_{demonio} \ge 0. $$
La segunda ley sale invicta.
"Demonio vs. segunda ley: empate técnico, victoria termodinámica." 😉