本节摘要:反应速率是化学反应动力学最直接的观测对象,定义为反应物浓度随时间的变化率。速率方程 r = k[A]^m[B]^n 把速率与浓度联系起来,其中反应级数 m、n 必须由实验确定,不能看化学计量数。一级反应的特征是半衰期与初始浓度无关,二级反应半衰期则与其成反比。许多物理化学问题(如药物代谢、放射性衰变、食品变质)都能用这一小套工具定量建模。
阅读完本节,你应当能够:
热力学只回答"反应能不能发生、能走到哪",动力学回答的是"能走多快"。这两件事常常脱节:钻石转变成石墨在热力学上是自发的(ΔG < 0),但室温下你根本等不到它变——因为活化能实在太高,速率几乎为零。反过来,你刚点燃的汽油瞬间烧完,热力学和动力学配合得"恰到好处"。制药行业里新药稳定性、食品工业里货架期、催化反应器设计,全都依赖对速率和级数的准确测定。
对反应 aA + bB → 产物,速率常写成 r = -(1/a)(d[A]/dt)。速率方程 r = k[A]^m[B]^n 中,m、n 称为反应级数。关键认知是:m、n 与化学计量数 a、b 不一定相同,只能靠实验确定。例如有些反应的级数会是零(速率与浓度无关)甚至分数级数(表面催化反应常这样)。
这里还要区分"反应分子数":它只看基元反应,取值只能是 1、2、3;而反应级数可以是零、分数甚至负数。两者经常被混淆,但含义完全不同。
一级反应的速率方程为 -d[A]/dt = k[A],积分得到 ln([A]/[A]₀) = -kt,即 [A] = [A]₀e^(-kt)。把 ln[A] 对时间 t 作图是一条斜率为 -k 的直线——这是检验一级反应最直观的方法。半衰期 t_½ = ln2/k,与初始浓度完全无关。
放射性衰变、药物在体内的清除、多数有机物的水解变质都符合一级动力学。同位素定年(碳-14)正是利用"半衰期固定不变"这个性质。"半衰期不看初始量"这一条,让衰变时间与样品大小脱钩,只由核素固有常数决定。
我们写代码,用假想数据拟合一级反应速率常数,并把模型预测与实测点对比验证。
import numpy as np rng = np.random.default_rng(0) # 模拟一级反应数据 t(min), 浓度 A(mol/L),并微微加噪 t = np.array([0, 2, 4, 6, 8, 10, 12]) A_true = 0.80 * np.exp(-0.20 * t) A = A_true * (1 + 0.02*rng.standard_normal(t.size)) # 一级反应线性化: ln[A] vs t k_fit = -np.polyfit(t, np.log(A), 1)[0] t_half = np.log(2)/k_fit print(f"拟合得到 k ≈ {k_fit:.3f} min⁻¹, 半衰期 ≈ {t_half:.1f} min") print("残差小、ln[A]-t 回归良好 → 判定为一级反应")
若把同样的数据按二级反应的 1/[A] 对 t 作图,残差会明显增大,说明它不是二级反应。这就是级数判定的"线性度判官":看哪种变换曲线更直,就归哪级。
二级反应(单一反应物)r = k[A]²,积分形式 1/[A] - 1/[A]₀ = kt,半衰期 t_½ = 1/(k[A]₀),与初始浓度成反比。对于 A+B 型二级反应,当某一反应物大大过量时可简化为"伪一级"。零级反应速率与浓度无关(达饱和的酶催化、表面催化、零级药物释放),[A] 对 t 是直线,半衰期 t_½ = [A]₀/(2k)。
三种级数半衰期对初始浓度的依赖关系截然不同,这一点正是"半衰期法判断级数"的依据:分别测两份不同初始浓度的半衰期,看 t_½ 随初始浓度怎样变。

本章后续 5.2 讲速率如何随温度与分子结构变化(活化能),5.3 处理多个基元过程叠加的总速率,5.4 落到溶液与扩散控制。而动力学与热力学(第2章)共同构成"能走多远 + 走多快"的双重视角,电化学里的电极过程速率(第7章)也建立在这套级数与速率常数的语言之上。