1912 Bragg 晶體繞射#
案發現場#
1912 年前後,科學界同時握有三塊拼圖,卻沒人知道如何拼在一起:
- X 射線:侖琴(Röntgen)1895 年發現的神秘射線,能穿透人體與金屬,但它的本質眾說紛紜——是波?還是粒子?最關鍵的是,沒有人能測出它的波長,因為它短到任何已知光柵(每毫米數千條刻線)都無法使它繞射。
- 晶體:礦物學家早就知道晶體有規則的外形與解理性,並推測內部是原子(或分子)的規則排列——但這只是推測,從來沒有人「看見」過固體內部的排列。原子是否真實存在,在 19 世紀末仍是爭議中的哲學問題。
- 繞射理論:光學中已確立,波長與光柵間距相當時會產生繞射。
1912 年,德國慕尼黑大學的勞厄(Max von Laue)靈光一閃:如果晶體內部真是規則的原子排列,其間距(約 \(10^{-10}\) 公尺,即 1 埃)恰好與 X 射線的推測波長相當,那麼晶體就是天然的立體光柵! 他讓 X 射線穿過硫酸銅晶體,果然在底片上拍到規則排列的斑點——X 射線是波,晶體內部真是規則排列,兩個謎題一次解開。
但勞厄的發現也留下新懸案:底片上的斑點圖案,要如何解讀? 斑點的位置由晶體結構決定,但勞厄的分析過於複雜,無法從斑點反推原子位置。「看見固體內部」只完成了第一步,翻譯斑點的密碼才是真正的難題。
這個謎題落到英國劍橋一位年僅 22 歲的年輕人勞倫斯·布拉格(Lawrence Bragg)肩上——而他身旁有一位最好的幫手:他的父親威廉·布拉格(William Bragg),本身就是 X 射線研究的權威。這對父子檔即將聯手破案。
偵查過程#
第一步:簡化問題——把立體繞射想成鏡面反射。 勞倫斯·布拉格的關鍵靈感是:晶體中規則排列的原子平面,就像一面面間距為 \(d\) 的半透鏡子;X 射線射入時,各層原子平面散射的波會互相干涉。要使散射波同相叠加(產生亮斑),相鄰兩層反射波的路徑差必須是波長的整數倍。
幾何推理如下:X 射線以角度 \(\theta\) (與晶面之夾角)入射,穿透到下一層平面多走的路程為 \(2d\sin\theta\) 。干涉加強條件即為著名的布拉格定律:
其中 \(d\) 是晶面間距, \(\theta\) 是繞射角, \(\lambda\) 是 X 射線波長, \(n\) 是整數階數。這條简洁的公式是整個晶體學的核心:**測得繞射角 \(\theta\) ,已知波長 \(\lambda\) ,就能算出晶面間距 \(d\) ** ——人類第一次可以用數學「丈量」原子世界。
第二步:解出第一個晶體結構——食鹽。 布拉格父子選擇了最日常的樣本:食鹽(NaCl)。他們用父親設計的電離式 X 射線光譜儀(比照相底片更精確),測量 NaCl 晶體在各角度的繞射強度。分析發現 NaCl 晶體中,鈉離子與氯離子並非以「NaCl 分子」成對存在,而是各自構成面心立方的交錯點陣——每個 Na⁺ 周圍有 6 個等距的 Cl⁻,每個 Cl⁻ 周圍也有 6 個 Na⁺。
這個發現深具哲學意義:食鹽中根本沒有「分子」,只有離子的規則點陣!化學式 NaCl 描述的只是離子數目之比。原子—離子的真實性與固體的結構觀念,就此被 X 射線「拍照存證」。
他們接著由密度與亞佛加厥常數反推晶格常數。NaCl 的莫耳體積為 \(M/\rho\) ,每個晶胞含 4 個 NaCl 單位,故晶格常數 \(a\) 滿足:
代入 NaCl 的 \(M = 58.44\) g/mol、 \(\rho = 2.16\) g/cm³,得 \(a \approx 5.64\) 埃,與繞射測量完全吻合——兩條獨立證據鏈交會,結案證據確鑿。
第三步:父子分工,系統性「拍案」。 此後數年,布拉格父子解出一連串晶體結構:KCl、ZnS、金剛石、方解石等。父親主管儀器與實驗,兒子主管結構分析,論文聯名發表。1915 年,25 歲的勞倫斯·布拉格成為史上最年輕的諾貝爾物理學獎得主。
結案報告#
第一,晶體學誕生。 布拉格定律使「測繞射角 → 算原子間距」成為標準流程,X 射線晶體學正式立門。從此固體化學、礦物學、冶金學都有了「透視鏡」:金剛石與石墨的差異、金屬的晶格缺陷、半導體的晶體結構,一一現形。
第二,結構生物學之基。 晶體學最大的果實在生命科學:1953 年,華生與克立克正是根據佛蘭克林(Rosalind Franklin)拍攝的 DNA X 射線繞射照片(著名的「照片 51」,其規律正是布拉格定律的產物)解出 DNA 雙螺旋結構;其後蛋白質晶體學(如肌紅蛋白、血紅素結構,1962 年諾貝爾獎)接連問世。今天數萬種蛋白質結構與新藥設計,全部站在 1912 年那對父子檔的肩膀上。
第三,原子論的終極存證。 晶體繞射讓「看不見的原子」第一次被間接但確鑿地「拍攝」下來。這與同期的光譜學互為表裡:光譜讀出原子的電子結構(見 1859-Bunsen光譜分析.md),繞射讀出原子在空間中的排列;兩者合流,原子從哲學假說變成可測量的工程對象。
第四,通往現代材料科學。 維爾納預言的八面體配位幾何(見 1893-Werner配位化學.md),在 X 射線解析的晶體結構中一一獲得視覺驗證;而元素的性質週期(見 1869-Mendeleev週期表.md)也終於有了微觀幾何的解釋基礎。半導體、超導體、觸媒的研發,至今仍以布拉格繞射為第一線工具。
證據與工具#
# 用 Python 模擬布拉格定律與晶體繞射
import math
def bragg_angle(d, wavelength, n=1):
"""布拉格定律 2d*sin(theta) = n*lambda,回傳繞射角 theta(度)"""
ratio = n * wavelength / (2 * d)
if ratio > 1:
return None # 無解:該階數無法繞射
return math.degrees(math.asin(ratio))
# 案件一:食鹽晶體,X 射線波長 1.54 埃(銅靶 K-alpha)
wavelength = 1.54 # Angstrom
d_NaCl_200 = 2.82 # (200) 晶面間距,單位 Angstrom
theta = bragg_angle(d_NaCl_200, wavelength)
print(f"== 案件一:NaCl (200) 面 ==")
print(f"已知 d={d_NaCl_200} Å, λ={wavelength} Å -> θ = {theta:.2f}°")
# 實驗測得約 15.9°,與布拉格父子的測量一致
# 反推:由繞射角算晶面間距(偵探的逆推理)
def d_from_bragg(theta_deg, wavelength, n=1):
return n * wavelength / (2 * math.sin(math.radians(theta_deg)))
print(f"由 θ=15.9° 反推 d = {d_from_bragg(15.9, wavelength):.2f} Å")
# 丈量原子世界!
# 案件二:由密度反推晶格常數,兩條證據鏈交會
NA = 6.022e23
M, rho = 58.44, 2.16 # NaCl: g/mol, g/cm^3
a = (4 * M / (rho * NA)) ** (1/3) * 1e8 # cm -> Angstrom
print(f"\n== 案件二:密度法晶格常數 ==")
print(f"a = {a:.2f} Å(與繞射結果 {2*d_NaCl_200:.2f} Å 吻合)")
# 模擬繞射強度隨角度的變化:只在布拉格角度出現亮峰
import numpy as np
def diffraction_profile(d, wavelength, angles):
"""兩束反射波的路徑差造成的干涉:2d sin(theta) = n*lambda 時加強"""
intensities = []
for th in angles:
path_diff = 2 * d * math.sin(math.radians(th))
# 相位差 = 2*pi * 路徑差/波長;同相 -> 亮峰
phase = 2 * math.pi * path_diff / wavelength
intensities.append(1 + math.cos(phase)) # 干涉疊加
return np.array(intensities)
angles = np.linspace(5, 45, 400)
peaks = diffraction_profile(d_NaCl_200, wavelength, angles)
bright = angles[peaks > 1.95]
print("\n== 模擬繞射亮峰位置 ==")
print(f"亮峰出現於 θ ≈ {bright[0]:.1f}°, {bright[-1]:.1f}° ...")
print("底片上的斑點密碼,就此翻譯成原子間距")