本节摘要:链条上每一站同时收货与发货——母体衰变给它供货,它自己又衰变给下游供货。把每一站的收支写成微分方程组,解出的就是 Bateman 方程:链上任意核素的活度是各代指数项的加权和。本节从两核素情形推起,给出三核素解析式与通用数值解法,并解出子体活度峰值时刻——二十三点钟见顶的钼锝发生器、停堆后十一点钟见顶的氙-135,用的都是同一套算法。
3.1 节的指数律管一站,本节把整个链串起来。这是全册数学最密的一节,但每个公式都从收支表来,演算全部可复算。
母体 N1 以常数 λ1 衰变生成子体 N2,子体再以 λ2 衰变出走。子体的收支方程是:存量变化率等于流入(λ1 乘 N1)减流出(λ2 乘 N2)。初始时刻子体为零,解出的 N2 先升后降——流入端被母体衰减拖慢,流出端自身衰变,两头赛跑必有一个交点。交点就是子体活度的峰值时刻,对两核素情形有解析解:
t 峰值 等于 ln(λ2 比 λ1)除以(λ2 减 λ1)。注意公式只在 λ2 大于 λ1 时有意义——子体衰变比母体快,活度才有峰值可言;反过来(子体寿命更长)活度只会单调爬升,没有峰。
# 演算 3.2-1:钼-99 → 锝-99m 的峰值时刻(发生器排班的数学底稿) import math LN2 = math.log(2) T_Mo, T_Tc = 65.94, 6.0067 # 半衰期(小时) lp, ld = LN2 / T_Mo, LN2 / T_Tc # 母、子衰变常数(每小时) tmax = math.log(ld / lp) / (ld - lp) print(f"λp = {lp:.6f} 每小时,λd = {ld:.6f} 每小时") print(f"子体活度峰值时刻 t_max = {tmax:.1f} 小时") print(f"暂态平衡活度比 = {ld / (ld - lp):.4f}") # 输出: # λp = 0.010512 每小时,λd = 0.115396 每小时 # 子体活度峰值时刻 t_max = 22.8 小时 # 暂态平衡活度比 = 1.1002
二十二点八小时——医院放射药房的排班表就写在这一点上:周一早晨洗脱后,周三早晨回到峰值附近,"隔日挤奶"不是玄学,是对数表算出来的。
三核素以上没有懒办法,但通式结构极简:链上第 n 个核素的原子数是各代初始量的指数项加权和,每项的系数由相邻衰变常数两两相减构成(写成连乘)。记不住公式没关系,数值解更常用——用小步长欧拉法或现成的常微分方程求解器把方程组一路积分,链条多长都照算。工程上推荐"解析式理解结构、数值解产出数字"的组合拳。
# 演算 3.2-2:三核素链 碘-135 → 氙-135 → 铯-135 的解析解与峰值 # 氙-135 中子俘获截面是全部核素之冠,堆停堆后的反应性尖峰正是这条链 import math lA, lB = math.log(2) / 6.57, math.log(2) / 9.14 # 每小时 t_peak = math.log(lA / lB) / (lA - lB) # 子体峰值时刻(解析式) n2_peak = (lA / (lB - lA)) * (math.exp(-lA * t_peak) - math.exp(-lB * t_peak)) print(f"氙-135 峰值时刻 ≈ {t_peak:.2f} 小时,相对份额峰值 ≈ {n2_peak:.4f}") # 输出: # 氙-135 峰值时刻 ≈ 11.13 小时,相对份额峰值 ≈ 0.4300
氙-135 是反应堆毒性的主角——中子俘获截面是全部核素之冠,停堆后它一度疯涨的动力学正是这条链。碘-135 先衰变喂入、氙-135 又衰变流失,两条速率一慢一快,存量在十一点钟上下见顶——这正是停堆后反应性管理的经典窗口,6.2 节讲衰变热时会再遇到它。
解析式看着唬人,两个极限一取就薄了。极限一:子体衰变极快(λ2 远大于 λ1),公式退化成"子体活度贴着母体活度走"——这是下一节长期平衡的雏形。极限二:子体衰变极慢(λ2 小于 λ1),子体活度单调爬升没有峰值,峰值公式里的对数失去定义——公式"报错"的方式本身就是判据,它在告诉你这个链不存在暂态峰。写代码前先取极限估计结果的数量级与形状,曲线算出来若违背直觉,先查常数单位再怀疑公式,这是数值工作的保命顺序。
时间单位的自洽同样值得单独立一条纪律:λ 与 t 必须共用同一时间单位——半衰期以小时给,衰变常数就换算成每小时;混用秒与小时是活度演算的第一大错源,错出的结果往往"看着还挺像"。
真实链条常分岔:钼-99 只有 87.6% 的衰变走"生成锝-99m"这条支路。处理办法朴素而统一——给流出项乘分支比。演算 3.2-1 若计入分支,平衡活度比从 1.1002 折到 0.964,即平衡时锝-99m 活度约为钼-99 的 96%。分支比总让下游"打折",第 3.3 节的发生器演算会把这个折扣算进账。
背景:核事故释放的裂变产物里碘-131 最受关注(富集于甲状腺),评估它需要知道环境中的峰值时刻。
操作:把碘-131 记为链上子体,"母体"是持续释放与碲-131 短寿命前驱。简化成释放后单核素衰减,则事故后碘-131 浓度从释放一刻起单调下降(半衰期 8.0252 天);若释放持续数日,叠加各日释放的衰减尾巴,峰值出现在释放终止后约一至两天。
结果:以半衰期 8 天计,持续五日释放终止后环境浓度约在两天内见顶,之后每八天折半。
解读:"事故后第七天碘浓度反而高于第一天"这类新闻表述,多半混淆了释放过程与衰变过程——持续释放堆高的浓度可以压过早期衰减。把链条时间结构想清楚,数据不会骗人。
变式练习:把演算 3.2-2 的链换成 碲-132(3.2 天)→ 碘-132(2.3 小时)再算一遍峰值:约 8 小时见顶。同一套代码只改两个常数——这就是数值解法的通用性红利。顺手再做一步:把碘-132 换成它的稳定端点并让冷却时间拉到两周,观察短链"全衰干净"的时间刻度——事故监测里"两周后只测铯不测碘"的惯例,源头就是这两个常数之比。
Bateman 方程没有新物理,只有指数律的接力;它的价值在于把"链条上任意一站、任意时刻"的活度变成一行可算的式子——后面所有剂量与测量的账,都从这里领数。