跳轉到

06.1 反應速率方程:一級、二級與複雜反應的微分方程解#

1. 從熱力學到動力學:換一組變數#

第五章問「反應會不會發生」,本章問「反應多快發生」。兩者用同一個變數——反應進度 \(\xi\) ,但把 \(\xi\) 升級為時間的函數 \(\xi(t)\) :

定義(反應速率):對 \(0=\sum_i \nu_i A_i\) , $\(r = \frac{1}{V}\frac{d\xi}{dt} = -\frac{1}{\nu_i}\frac{d[A_i]}{dt}\)$ ( \(\nu_i\) 對反應物為負,故 \(-\nu_i > 0\) 時速率為正。)

速率定律(rate law)是一個假設性的微分方程:

\[r = k\, [A]^{m}[B]^{n}\]

級數 \(m+n\) 不必然等於計量係數——1860 年代 Harcourt 與 Esson 研究高錳酸鉀與草酸反應時首次用微積分擬合濃度-時間數據,開創了化學動力學;1884 年 van 't Hoff 才把級數與計量式分開,指出這是實驗問題而非代數問題。

2. 一級反應:指數衰減#

設 \(A \to P\) 一級反應:

\[-\frac{d[A]}{dt} = k[A]\]

分離變數積分:

\[\int_{[A]_0}^{[A]} \frac{d[A]}{[A]} = -k\int_0^t dt \;\Rightarrow\; \boxed{[A](t) = [A]_0\, e^{-kt}}\]

半衰期 \(t_{1/2} = \frac{\ln 2}{k}\) 與初濃度無關——這是指數過程的標誌,放射性定年、藥物動力學(一級消除)、化學發光衰減全用它。歷史注腳:放射性衰變定律由 Rutherford 與 Soddy 在 1902–1903 年以一級動力學的形式寫下,成為原子蛻變理論的核心證據。

線性化判別法: \(\ln[A] = \ln[A]_0 - kt\) ,對 \(\ln[A]\) – \(t\) 作圖,直線即一級。這是計算機普及前的標準分析法,也是「數據線性化」思想在化學中的經典應用。

3. 二級反應:有理函數的時間行為#

(甲) \(2A \to P\) : \(-\frac{d[A]}{dt} = k[A]^2\)

\[\int_{[A]_0}^{[A]} [A]^{-2}\, d[A] = -kt \;\Rightarrow\; \boxed{\frac{1}{[A]} = \frac{1}{[A]_0} + kt}\]

半衰期 \(t_{1/2} = \frac{1}{k[A]_0}\) ,與初濃度成反比。 \([A]\) 對 \(t\) 的曲線在尾端有一條「長尾巴」——衰減慢得多,這與一級反應的行為截然不同,正是實驗上判別級數的手感。

(乙) \(A + B \to P\) ,初濃度不等:部分分式積分

\[\frac{1}{[B]_0 - [A]_0}\ln\frac{[B][A]_0}{[A][B]_0} = kt\]

4. 零級與 \(n\) 級的統一公式#

\(n\) 級反應( \(n \neq 1\) )有統一積分式:

\[[A](t)^{1-n} = [A]_0^{1-n} + (n-1)kt\]
級數 速率式 濃度-時間 \(t_{1/2}\)
0 \(k\) \([A]_0 - kt\) \([A]_0/2k\)
1 \(k[A]\) \([A]_0e^{-kt}\) \(\ln 2/k\)
2 \(k[A]^2\) \(\frac{[A]_0}{1+[A]_0kt}\) \(1/(k[A]_0)\)
\(n\) \(k[A]^n\) 上式 與 \([A]_0^{\,1-n}\) 成正比

半衰期法:測不同 \([A]_0\) 的 \(t_{1/2}\) , \(t_{1/2} \propto [A]_0^{1-n}\) ,兩邊取對數得 \(n\) 。這是 19 世紀末已標準化的實驗設計。

5. 可逆反應:逼近平衡的指數過程#

\(A \rightleftharpoons B\) ,速率常數 \(k_1, k_{-1}\) :

\[\frac{d[A]}{dt} = -k_1[A] + k_{-1}[B] = -(k_1+k_{-1})\left([A] - [A]_{\mathrm{eq}}\right)\]

解為

\[[A](t) = [A]_{\mathrm{eq}} + \left([A]_0 - [A]_{\mathrm{eq}}\right)e^{-(k_1+k_{-1})t}\]

深刻之處:趨近平衡的弛豫時間 \(\tau = 1/(k_1+k_{-1})\) 由正逆速率常數「相加」決定,而平衡位置由「相除」 \(K = k_1/k_{-1}\) 決定。這就是細緻平衡原理(detailed balance):熱力學(第五章的 \(K\) )與動力學(本章的 \(k\) )由這條關係鎖在一起。1921 年 Wegscheider 證明:若每個基元反應的正逆比值不滿足 \(K\) ,可以造出永動機——熱力學第二定律在動力學上強加了環路條件。

6. 連續反應 \(A \to B \to C\) :鏈鎖法則的盛宴#

\[\frac{d[A]}{dt} = -k_1[A], \qquad \frac{d[B]}{dt} = k_1[A] - k_2[B], \qquad \frac{d[C]}{dt} = k_2[B]\]

第一條解出 \([A] = [A]_0 e^{-k_1 t}\) ,代入第二條得一階線性 ODE,用積分因子解:

\[[B](t) = \frac{k_1[A]_0}{k_2 - k_1}\left(e^{-k_1 t} - e^{-k_2 t}\right)\]

\([B]\) 先升後降,有一個極大值:令 \(d[B]/dt = 0\) 得

\[t_{\max} = \frac{\ln(k_2/k_1)}{k_2 - k_1}\]

化學實例:放射性衰變鏈(鈾→鐳→氡…)正是這組方程;工業上連續硝化、酯化-皂化序列也屬此型。中間產物 \(B\) 的極大值何時出現、多大,決定了「何時出料」的工程決策。

7. 數值實驗:一級、二級與連續反應的模擬#

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import solve_ivp

# ---- 一級 vs 二級:同樣半衰期的形狀對比 ----
k1, A0 = 0.1, 1.0          # 一級
k2 = k1 / A0               # 讓初半衰期相同
t = np.linspace(0, 60, 600)
A_1st = A0 * np.exp(-k1 * t)
A_2nd = A0 / (1 + A0 * k2 * t)

plt.figure(figsize=(7, 4.5))
plt.plot(t, A_1st, label="一級 $A_0e^{-kt}$")
plt.plot(t, A_2nd, "--", label="二級 $A_0/(1+A_0kt)$")
plt.axhline(A0 / 2, color="gray", lw=0.8)
plt.xlabel("t"); plt.ylabel("[A]")
plt.legend(); plt.grid(alpha=0.3)
plt.title("一級與二級反應的濃度-時間曲線")

# ---- 連續反應 A -> B -> C 用 ODE 求解器 ----
def chain(t, y, k1, k2):
    A, B, C = y
    return [-k1 * A, k1 * A - k2 * B, k2 * B]

sol = solve_ivp(chain, [0, 40], [1.0, 0, 0],
                t_eval=np.linspace(0, 40, 400), args=(0.3, 0.1))

plt.figure(figsize=(7, 4.5))
for i, lab in enumerate(["A", "B", "C"]):
    plt.plot(sol.t, sol.y[i], label=lab)
plt.xlabel("t"); plt.ylabel("濃度")
plt.legend(); plt.grid(alpha=0.3)
plt.title("連續反應 A → B → C(k₁=0.3, k₂=0.1)")

# 解析 t_max 驗證
k1v, k2v = 0.3, 0.1
tmax = np.log(k2v / k1v) / (k2v - k1v)
print(f"解析 t_max = {tmax:.3f}")
i = np.argmax(sol.y[1])
print(f"數值 t_max = {sol.t[i]:.3f}, [B]_max = {sol.y[1][i]:.3f}")
plt.show()

數值極大值位置與解析式 \(t_{\max} = \ln(k_2/k_1)/(k_2-k_1)\) 吻合——這是「先求導、令導數為零」這套微積分流程在動力學中的直接應用。

8. 零級反應與級數的測定方法匯總#

零級反應 \([A] = [A]_0 - kt\) 常見於表面催化(活性位飽和)與光化學(光強恆定時,速率由光子通量決定而非濃度)。特徵:濃度對 \(t\) 作圖是直線,且反應在 \(t = [A]_0/k\) 時「突然」結束。

判別級數的三大實驗策略:

  1. 積分法:分別以 \([A]\) 、 \(\ln[A]\) 、 \(1/[A]\) 對 \(t\) 作圖,最直者勝。缺點: \(n \ge 3\) 時需要 \(1/[A]^2\) 等越來越敏感的作圖,且很難區分 1.5 級。
  2. 半衰期法:改變 \([A]_0\) ,看 \(t_{1/2}\) 怎麼變。 \(\log t_{1/2} = (1-n)\log[A]_0 + \text{const}\) ,斜率給 \(1-n\) 。
  3. 初速率法:只測 \(t \approx 0\) 的小段斜率 \(r_0\) ,系統地改變初濃度做隔離法(flooding:令 \([B] \gg [A]\) 則準一級)。這是現代標準方法,因為它避開了副反應與逆反應的干擾。

例題:丙酮鹵化 \(\mathrm{CH_3COCH_3 + Br_2 \to CH_3COCH_2Br + HBr}\) 的速率式是 \(r = k[\text{acetone}][\mathrm{H^+}]\) ,與 \([\mathrm{Br_2}]\) 無關——儘管溴出現在計量式裡。原因是決速步是酸催化的烯醇化,溴在後續快步驟才登場。這個經典例子告誡我們:速率式是機理的指紋,不是計量式的鏡像。

9. 章末小結#

  • 速率定律是指數不一定等於計量係數的假設性 ODE;級數由實驗(半衰期法、線性化作圖、初速率法)決定。
  • 一級 → 指數衰變、半衰期恆定;二級 → \(1/[A]\) 線性、半衰期反比於初濃度。
  • 可逆反應的弛豫時間 \(\tau = 1/(k_1+k_{-1})\) 與細緻平衡 \(K = k_1/k_{-1}\) 把熱力學與動力學鎖在一起。
  • 連續反應的 \([B](t)\) 有解析極大值 \(t_{\max} = \ln(k_2/k_1)/(k_2-k_1)\) ,由微積分直接求出。
  • 一旦機理複雜(多步、多中間物),解析解往往不存在——這催生了下一節的「穩態近似」。

下一步#

速率常數 \(k\) 為什麼隨溫度劇變?1889 年 Arrhenius 給出 \(k = Ae^{-E_a/RT}\) ——下一節 06.2 我們把這條式子放到 \(\ln k\) – \(1/T\) 座標上看它的幾何意義,用直線的斜率與截距測量分子世界的能量尺度,並與分子碰撞理論、過渡狀態理論互相印證。