1944 Libby碳十四定年#
案發現場#
1940 年代初,考古學與地質學面臨一個根本性難題:古物的年代怎麼測?當時只有「相對定年法」——靠地層疊壓、陶器樣式、樹輪比對,判斷甲比乙早還是晚,卻說不出「早多少年」。埃及學者靠文獻紀年勉強建立年表,但史前時代——文字發明之前——完全沒有絕對年代的錨點。誰遇到了這個問題?全世界所有研究人類起源、冰河期、農業起源的學者。為何重要?因為「人類文明有多老」這個問題,當時全靠推測。
1896 年 Becquerel 發現放射性(見 1896-Becquerel放射性.md)之後,放射性定年的潛力已被看見:1907 年起鈾鉛法用於測岩石年齡(地球約 45 億歲),但需要礦物中的鈾,無法用於有機遺物——木頭、骨頭、木炭、織物。
1939 年,加州大學 Berkeley 的化學家 Willard Frank Libby 注意到一件「案發現場」:宇宙射線轟擊高層大氣,會把氮-14 變成放射性碳-14。他推理:這些 \(\mathrm{^{14}C}\) 應該隨二氧化碳混合進入全球碳循環,被所有生物吸收——生物活著時體內碳-14 濃度應與大氣一致;死亡後停止吸收,碳-14 按固定半衰期衰變減少。那麼,測遺骸中剩餘的碳-14,不就能反推死亡年代嗎?
偵查過程#
Libby 的偵查分三步。第一步:確認碳-14 存在於生物圈。他假設大氣中 \(\mathrm{^{14}C}\) 的生成與衰變達成平衡,濃度雖低但可測。碳-14 衰變放出 β 射線,變回氮:
第二步:精確測定半衰期。放射性衰變遵循一級動力學:
Libby 由實驗測得 \(\mathrm{^{14}C}\) 半衰期約 5568 年(後經更精確測量修正為 5730 年)。碳循環中 \(\mathrm{^{14}C}\) 與穩定碳-12 的比例約為 \(1.2 \times 10^{-12}\) ——十億分之一濃度級,偵測難度極高。
第三步:設計測量法。他改良 Geiger 計數器與屏蔽技術,把樣品轉化為純碳或氣體(後發展為液體閃爍計數法),測量每克碳每分鐘的 β 衰變次數。活生物的碳比活度約為每克每分鐘 15 次衰變。由剩餘比活度反推年代:
1946–1946 年間他在論文中提出原理,1946 年後於芝加哥大學完成首批驗證實驗。他測了兩件已知年代的樣品:埃及第一王朝的木棺(文獻紀年約公元前 3100 年)與紅杉木(樹輪紀年已知),結果與已知年代吻合——考古學有了第一把絕對年代的尺。
結案報告#
碳十四定年徹底改寫了考古學:史前文明第一次擁有絕對年代。舊石器時代晚期、農業起源、冰河期結束、美洲人類遷徙的年代,全被重新標定。最著名的案例是死海古卷:其亞麻包裹測得約公元前 2 世紀至公元 1 世紀,與文獻考證吻合,震驚世界。1950 年 Libby 出版《放射性碳定年》專著,1960 年獲諾貝爾化學獎。
後續發展源源不絕:樹輪校正曲線修正了大氣 \(\mathrm{^{14}C}\) 濃度的波動(工業革命與核試爆都改變了它);加速器質譜儀(AMS)把所需樣品量從數百克降到毫克;碳十四法測年上限約五萬年,更古老的遺物則由鉀氬法、鈾系法接力(見 1913-Soddy同位素與Moseley原子序.md)。從「文明有多老」到「這卷古書誰寫的」, radioactive carbon 讓時間本身變成了可測量的化學量。
證據與工具#
import numpy as np
# --- 碳十四衰變:N/N0 = e^(-λt) ---
t_half = 5730 # 年(現代採用值)
lam = np.log(2) / t_half
print(f"半衰期 = {t_half} 年,λ = {lam:.6f} /年")
# 不同年代的剩餘比例
print("\n年代(年) 剩餘 14C 比例")
for t in [1000, 5730, 11460, 20000, 50000]:
print(f"{t:>7} {np.exp(-lam * t):.4f}")
# --- 由比活度反推年代:t = (t1/2/ln2) * ln(A0/A) ---
A0 = 15.0 # 活生物碳比活度:每克每分鐘衰變數(dpm/g)
for name, A in [("死海古卷亞麻", 13.2), ("埃及木棺", 13.5), ("舊石器木炭", 0.8)]:
t = t_half / np.log(2) * np.log(A0 / A)
print(f"{name}: A = {A} dpm/g → 年代 ≈ {t:,.0f} 年前")
# --- 半衰期驗證:Libby 原測 5568 年 vs 現代 5730 年 ---
for th in [5568, 5730]:
print(f"\n半衰期 {th} 年 → 同一樣品(A0/A = 13.2/15)年代",
f"= {th / np.log(2) * np.log(15 / 13.2):,.0f} 年")