エントロピーの定義と意味をわかりやすく解説

エントロピーは熱力学第2法則を定量的に表現する状態量です。「乱雑さの尺度」と言われることがありますが、より正確には不可逆性の度合いを測る量です。

本記事の内容

  • エントロピーの熱力学的定義
  • 理想気体のエントロピー変化
  • エントロピー増大則
  • T-S線図の読み方
  • Pythonでの可視化

前提知識

エントロピーの定義

可逆過程において、微小な熱の授受 $\delta Q_{\text{rev}}$ と絶対温度 $T$ を用いて:

$$ \boxed{dS = \frac{\delta Q_{\text{rev}}}{T}} $$

状態1から状態2へのエントロピー変化:

$$ \Delta S = S_2 – S_1 = \int_1^2 \frac{\delta Q_{\text{rev}}}{T} $$

エントロピーは状態量なので、経路によらず始状態と終状態のみで決まります。

理想気体のエントロピー変化

Tdsの関係式

第1法則 $dU = \delta Q – p \, dV$ に $\delta Q_{\text{rev}} = TdS$ を代入:

$$ TdS = dU + pdV = nC_v dT + p \, dV $$

理想気体 $pV = nRT$ を用いると:

$$ dS = nC_v \frac{dT}{T} + nR\frac{dV}{V} $$

積分すると:

$$ \boxed{\Delta S = nC_v \ln\frac{T_2}{T_1} + nR\ln\frac{V_2}{V_1}} $$

$p$ と $T$ で表す場合:

$$ \Delta S = nC_p \ln\frac{T_2}{T_1} – nR\ln\frac{p_2}{p_1} $$

各過程のエントロピー変化

過程 $\Delta S$
等温 ($T$ 一定) $nR\ln(V_2/V_1)$
等容 ($V$ 一定) $nC_v\ln(T_2/T_1)$
等圧 ($p$ 一定) $nC_p\ln(T_2/T_1)$
断熱可逆 $0$(等エントロピー)

エントロピー増大則

孤立系のエントロピーは決して減少しません:

$$ \boxed{\Delta S_{\text{isolated}} \geq 0} $$

等号は可逆過程の場合に成立し、不等号は不可逆過程を表します。

具体例:熱伝導

温度 $T_H$ の物体から温度 $T_L$ の物体へ熱量 $Q$ が移動する場合:

$$ \Delta S = -\frac{Q}{T_H} + \frac{Q}{T_L} = Q\left(\frac{1}{T_L} – \frac{1}{T_H}\right) > 0 $$

$T_H > T_L$ なので $\Delta S > 0$(不可逆過程)。

T-S線図

T-S線図では、曲線の下の面積が熱量を表します:

$$ Q = \int T \, dS $$

可逆断熱過程は垂直線($\Delta S = 0$)、等温過程は水平線で表されます。

Pythonでの可視化

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(1, 3, figsize=(16, 5))

# (1) 理想気体の各過程のT-S線図
n = 1; Cv = 5/2 * 8.314; Cp = 7/2 * 8.314; R = 8.314
T0, S0 = 300, 0

# 等圧加熱
T_cp = np.linspace(300, 600, 100)
S_cp = n * Cp * np.log(T_cp / T0)

# 等容加熱
T_cv = np.linspace(300, 600, 100)
S_cv = n * Cv * np.log(T_cv / T0)

# 等温膨張
S_iso = np.linspace(0, 15, 100)
T_iso = np.ones_like(S_iso) * T0

axes[0].plot(S_cp, T_cp, 'b-', lw=2.5, label='Isobaric ($C_p$)')
axes[0].plot(S_cv, T_cv, 'r-', lw=2.5, label='Isochoric ($C_v$)')
axes[0].plot(S_iso, T_iso, 'g-', lw=2.5, label='Isothermal')
axes[0].axvline(0, color='gray', ls='--', alpha=0.5, label='Adiabatic rev.')
axes[0].set_xlabel('$\\Delta S$ [J/K]', fontsize=12)
axes[0].set_ylabel('$T$ [K]', fontsize=12)
axes[0].set_title('T-S diagram for ideal gas', fontsize=13)
axes[0].legend(fontsize=10); axes[0].grid(True, alpha=0.3)

# (2) 熱伝導によるエントロピー生成
T_H = 500  # 高温体 [K]
T_L_range = np.linspace(100, 499, 200)
Q_transfer = 1000  # 移動熱量 [J]
dS = Q_transfer * (1/T_L_range - 1/T_H)

axes[1].plot(T_L_range, dS, 'r-', lw=2.5)
axes[1].axhline(0, color='k', lw=0.5)
axes[1].set_xlabel('Cold body temperature $T_L$ [K]', fontsize=12)
axes[1].set_ylabel('Entropy generation $\\Delta S$ [J/K]', fontsize=12)
axes[1].set_title(f'Entropy generation ($T_H$={T_H}K, Q={Q_transfer}J)', fontsize=13)
axes[1].grid(True, alpha=0.3)

# (3) エントロピー変化 vs 体積比(等温過程)
V_ratio = np.linspace(0.5, 5, 200)
dS_iso = n * R * np.log(V_ratio)

axes[2].plot(V_ratio, dS_iso, 'b-', lw=2.5)
axes[2].axhline(0, color='k', lw=0.5)
axes[2].axvline(1, color='gray', ls='--', alpha=0.5)
axes[2].set_xlabel('Volume ratio $V_2/V_1$', fontsize=12)
axes[2].set_ylabel('$\\Delta S$ [J/K]', fontsize=12)
axes[2].set_title('Isothermal entropy change', fontsize=13)
axes[2].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()

まとめ

  • エントロピーの定義: $dS = \delta Q_{\text{rev}}/T$(状態量)
  • 理想気体: $\Delta S = nC_v\ln(T_2/T_1) + nR\ln(V_2/V_1)$
  • エントロピー増大則: 孤立系で $\Delta S \geq 0$
  • T-S線図: 曲線下の面積が熱量 $Q = \int T \, dS$

次のステップとして、以下の記事も参考にしてください。