量子革命前夜——當牛頓的宇宙開始崩解
系列:量子力學遇見東方哲學 #01/12 | 閱讀時間:25分鐘 | Python (NumPy, Matplotlib, SciPy)
作者:Wina @ Code & Cogito
絕望的行為
1900年12月14日,柏林。冬日的寒風吹過威廉皇帝大街,德國物理學會的會議室裡,一位42歲的物理學家正要發表一個會改變世界的公式。
他的名字叫馬克斯·普朗克(Max Planck)。
此刻,他的雙手微微顫抖。不是因為緊張,而是因為憤怒——對自己的憤怒。他即將宣布的這個公式,完美地解決了困擾物理學界多年的「黑體輻射問題」。但代價是:他必須引入一個荒謬的假設。
「能量不是連續的,」他在報告中說,聲音低沉,「能量是一份一份的、不可分割的小包裹。」
E = hv
這個看似簡單的公式,其中的 h(普朗克常數,6.626×10⁻³⁴焦耳·秒)將會撕裂牛頓建立的宇宙秩序。
會後,普朗克對兒子說了一句話,這句話後來成為科學史上最著名的自白之一:
「這是一個絕望的行為。我天性保守,不喜歡懷疑的冒險…但我與這個問題已經搏鬥了六年。我知道它必須得到解決,無論付出什麼代價。我願意犧牲我的一切信念…」
普朗克不知道,他剛剛點燃了一場革命的導火線。
這場革命將會告訴人類:你以為的世界,不是真正的世界。
經典物理的輝煌宮殿
要理解量子革命有多震撼,我們得先看看它推翻的是什麼。
牛頓的完美宇宙(1687-1900)
1687年,艾薩克·牛頓出版了《自然哲學的數學原理》(Philosophiae Naturalis Principia Mathematica)。這本書用三個運動定律和一個萬有引力定律,解釋了從蘋果落地到行星運行的一切。
牛頓的宇宙是一座精密的時鐘:
第一定律(慣性定律):
物體會保持靜止或勻速直線運動,除非受外力作用。
第二定律(F=ma):
力等於質量乘以加速度。給我初始條件,我能算出物體的軌跡。
第三定律(作用與反作用):
你推我一把,我也推你一把。宇宙是對稱的、可預測的。
萬有引力定律:
F = G(m₁m₂)/r²
任何兩個物體之間都有引力,引力只依賴於質量和距離。
這套理論美得令人窒息。1758年,哈雷彗星如牛頓預測的那樣準時回歸。1846年,天王星軌道的異常讓人算出了海王星的位置——還沒看到它,就知道它在哪裡。
到了19世紀末,物理學家開始相信:宇宙的基本法則已經找到了。
拉普拉斯的決定論妖精
1814年,法國數學家拉普拉斯(Pierre-Simon Laplace)說出了經典物理最狂妄的宣言:
「假設有一個智慧體,它能知道宇宙中每個原子在某一時刻的位置和動量,並且能用牛頓定律進行計算,那麼對它而言,未來和過去一樣確定。沒有什麼是不確定的,一切都像現在一樣清楚呈現。」
這個「智慧體」後來被稱為「拉普拉斯妖」(Laplace’s demon)。
它的意思很簡單:宇宙是一台已經上好發條的機器。過去決定現在,現在決定未來,一切都是鐵定的。
這個世界觀對哲學的衝擊是巨大的:
– 沒有自由意志:你的每個「決定」都是粒子運動的必然結果
– 沒有創造性:未來已經「內含」在現在
– 沒有偶然:所謂的「運氣」只是無知
但它也給了人類巨大的信心:只要計算能力足夠,我們可以知道一切。
馬克士威的電磁統一(1865)
1865年,詹姆斯·馬克士威(James Clerk Maxwell)完成了另一個驚人的統一:電、磁、光原來是同一種東西。
他的四個方程式(馬克士威方程組)描述了電磁場如何產生、如何傳播:
nabla·E = rho/epsilon_0 (高斯定律)
nabla·B = 0 (磁場無源)
nabla x E = -dB/dt (法拉第定律)
nabla x B = mu_0 J + mu_0 epsilon_0 dE/dt (安培-馬克士威定律)
這些方程預測:電磁波的速度 c 約等於 3×10⁸ m/s
等等…這不就是光速嗎?
馬克士威意識到:光就是電磁波!
1887年,赫茲用實驗證實了電磁波的存在。馬克士威去世了,但他的理論勝利了。
19世紀末的物理學盛世
到了1890年代,物理學家相信:
- 力學:牛頓三定律搞定
- 引力:萬有引力定律搞定
- 光:馬克士威方程搞定
- 熱力學:三大定律搞定
- 統計力學:玻爾茲曼搞定
著名物理學家開爾文勳爵(Lord Kelvin)在1900年的演講中說:
「物理學的大廈已經建成。未來的物理學家只需要在小數點後面多加幾位數字。」
但他話鋒一轉:
「不過,晴朗的天空中還飄著兩朵小小的烏雲…」
他不知道,這「兩朵小烏雲」即將變成摧毀整座宮殿的颶風。
三朵不祥的烏雲
第一朵烏雲:黑體輻射問題
想像一個完美的黑色物體——它吸收所有照射到它的光,不反射任何東西。現在把它加熱。
實驗觀察:
– 溫度低時,發紅光(紅外線)
– 溫度高時,發白光(可見光)
– 溫度更高時,發藍光(紫外線)
很自然的規律對吧?鐵匠鋪裡的鐵塊就是這樣:黑色 → 紅色 → 黃色 → 白色。
問題是:經典物理預測的是什麼?
根據經典理論(瑞利-金斯公式),能量應該在所有頻率上均勻分佈。這意味著:
– 加熱物體會發出無限多的紫外光
– 能量會無限大
這被稱為「紫外災難」(Ultraviolet Catastrophe)。
但實驗告訴我們:沒有無限能量。加熱的物體不會炸成宇宙。
經典物理失敗了。
第二朵烏雲:邁克生-莫雷實驗(1887)
19世紀的物理學家相信:光波需要介質傳播,就像聲波需要空氣一樣。他們假設宇宙中充滿了一種叫「以太」(ether)的物質。
1887年,邁克生(Albert Michelson)和莫雷(Edward Morley)設計了一個精密實驗:地球繞太陽公轉,速度約30 km/s。如果以太存在,我們應該能測到「以太風」——就像你騎車時感受到的風。
結果:什麼都沒測到。
他們把儀器精度提高到可以測量地球軌道速度的1/100,還是沒測到。
以太不存在?那光在什麼裡面傳播?
這個問題直接導致了愛因斯坦的狹義相對論(1905),但那是另一個故事。
第三朵烏雲:光電效應(1887)
同樣是1887年,赫茲在證實電磁波存在的實驗中,意外發現了一個奇怪現象:
當紫外光照射到金屬表面時,金屬會射出電子。這叫「光電效應」(photoelectric effect)。
奇怪的是:
1. 光越強,射出的電子越多(這個正常)
2. 但電子的能量只跟光的頻率有關,跟光的強度無關(這個不正常!)
3. 低於某個頻率,再強的光也射不出電子(這個更不正常!)
經典理論說:光是波,波的能量跟振幅(強度)有關。強光應該給電子更多能量。
但實驗說:不對。
紅光再強也沒用,微弱的紫外光就能打出電子。
經典理論又失敗了。
普朗克的「不情願革命」
黑體輻射的絕望
普朗克是個徹頭徹尾的經典物理學家。他信仰熱力學,相信宇宙的有序性。他是那種會為了一個小數點爭論三天的人。
但黑體輻射問題卡住了他六年。
他試過所有經典方法:
– 電磁理論 ❌
– 統計力學 ❌
– 熱力學第二定律 ❌
1900年10月,他放棄了理論推導,決定「先把數學弄對」。他用一個經驗公式擬合實驗數據:
rho(v,T) = (8 pi h v³/c³) x 1/(e^(hv/kT) – 1)
這個公式完美符合實驗!
但問題是:它意味著什麼?
普朗克盯著這個公式兩個月,終於意識到:只有一種解釋說得通。
能量不是連續的,是一份一份的。
能量量子化
普朗克提出:能量只能以「能量子」(quantum)的形式存在:
E = nhv
其中:
– n = 0, 1, 2, 3, … (整數)
– h = 6.626×10⁻³⁴ J·s (普朗克常數)
– v = 頻率
這意味著:
– 你不能有「半個」能量子
– 能量像樓梯,不像斜坡
– 最小單位存在:deltaE = hv
對於紫外光(高頻率),一個能量子很大,需要很多能量才能「躍升」到下一階,所以輻射少。
對於紅外光(低頻率),一個能量子很小,容易躍升,所以輻射多。
這就是為什麼沒有「紫外災難」——高頻輻射太「貴」了,系統付不起。
普朗克的掙扎
但普朗克自己並不真正相信這個假設。
他覺得這只是「數學技巧」,是為了讓公式work的權宜之計。他花了接下來的十年試圖用經典理論重新解釋他的公式。
失敗了。
1931年,普朗克回憶說:
「我的徒勞無功嘗試把作用量子以某種方式融入經典理論,持續了很多年,耗費了我大量的精力。有些同事看到了悲劇的成分。但我不這麼想,因為我從中獲得了深刻的洞見。」
他點燃了革命,卻試圖撲滅它。
愛因斯坦的勇氣
1905年,一個26歲的專利局職員改變了一切。
光量子假說
阿爾伯特·愛因斯坦(Albert Einstein)讀了普朗克的論文,但他走得更遠。
普朗克說:能量的吸收和發射是量子化的,但光本身還是波。
愛因斯坦說:不對。光本身就是粒子。
他提出:光是一團團的「光量子」(後來叫「光子」,photon),每一團的能量是:
E = hv
不是 nhv(很多份),而是 hv(單份)。
光量子就像子彈,一顆顆地打在金屬上。
解釋光電效應
用光量子假說,光電效應立刻解釋清楚了:
- 光量子的能量 = hv
- 金屬的束縛能(work function)= W₀
- 如果 hv < W₀,光量子能量不夠,打不出電子
- 如果 hv > W₀,多餘的能量變成電子的動能:KE = hv – W₀
所以:
– 頻率決定電子能量(每顆光量子的能量)
– 強度決定電子數量(光量子的數量)
完美!
1921年,愛因斯坦因為「光電效應的解釋」獲得諾貝爾物理學獎。諷刺的是,他更有名的相對論還在爭議中,但光量子假說已經被實驗確認無疑。
波粒二象性
但這帶來了一個深刻的矛盾:
光是波,還是粒子?
雙縫實驗(1801年,楊格)證明:光是波(有干涉條紋)。
光電效應證明:光是粒子(一顆顆光子)。
兩者都對。
這就是「波粒二象性」(wave-particle duality)——20世紀物理學最詭異的發現之一。
光既是波,也是粒子。或者說:光超越了我們「波」和「粒子」的分類框架。
Python分析:看見量子的誕生
理論說得夠多了。讓我們用Python重現這些歷史性的發現。
模型1:黑體輻射——「紫外災難」的視覺化
首先,我們需要定義兩個公式:普朗克的量子公式,以及經典物理的瑞利-金斯公式。
import numpy as np
import matplotlib.pyplot as plt
from scipy.constants import h, c, k
# 設定中文字體
plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei', 'Arial']
plt.rcParams['axes.unicode_minus'] = False
def planck_law(wavelength, T):
"""普朗克公式(量子理論)"""
return (8 * np.pi * h * c / wavelength**5) / (np.exp(h * c / (wavelength * k * T)) - 1)
def rayleigh_jeans_law(wavelength, T):
"""瑞利-金斯公式(經典理論)"""
return 8 * np.pi * k * T / wavelength**4
兩個公式的差別在哪?
經典的瑞利-金斯公式假設能量可以無限分割——結果在短波長(紫外區)預測出無限大的輻射強度。普朗克公式則加入了量子化的約束——能量是一份一份的,高頻輻射太「貴」,所以不會無限爆炸。
接下來,我們設定太陽表面的溫度(5000K),計算兩種理論各自的預測:
def visualize_blackbody_radiation():
"""視覺化黑體輻射:經典 vs 量子"""
wavelength_nm = np.linspace(100, 3000, 1000)
wavelength_m = wavelength_nm * 1e-9
T = 5000 # 類似太陽表面溫度
planck_intensity = planck_law(wavelength_m, T)
rayleigh_intensity = rayleigh_jeans_law(wavelength_m, T)
為什麼選5000K?因為這接近太陽表面溫度。每個人每天都看到太陽,卻不知道經典物理無法解釋它為什麼不會在紫外線中爆炸。
現在把結果畫出來:
fig, ax = plt.subplots(figsize=(12, 8))
# 量子理論(藍色實線)
ax.plot(wavelength_nm, planck_intensity * 1e-13,
'b-', linewidth=2.5, label='普朗克公式(量子理論)')
# 經典理論(紅色虛線)——只畫長波長,短波長會爆炸
mask = wavelength_nm > 500
ax.plot(wavelength_nm[mask], rayleigh_intensity[mask] * 1e-13,
'r--', linewidth=2, label='瑞利-金斯公式(經典理論)')
# 標記紫外災難區與可見光區
uv_region = wavelength_nm < 400
ax.fill_between(wavelength_nm[uv_region], 0,
np.max(planck_intensity * 1e-13) * 1.2,
alpha=0.2, color='purple',
label='紫外災難區(經典理論預測無限大)')
visible_region = (wavelength_nm >= 380) & (wavelength_nm <= 750)
ax.fill_between(wavelength_nm[visible_region], 0,
np.max(planck_intensity * 1e-13) * 1.2,
alpha=0.1, color='yellow', label='可見光區')
注意紅色虛線——我們只畫了500nm以上的部分。如果把它延伸到紫外區,曲線會衝向無窮大。
這就是「紫外災難」的視覺化證據。
ax.set_xlabel('波長(nm)', fontsize=14)
ax.set_ylabel('輻射強度(任意單位)', fontsize=14)
ax.set_title(f'黑體輻射:經典理論的「紫外災難」 vs 量子理論的拯救\n溫度 T = {T} K',
fontsize=16, fontweight='bold')
ax.legend(fontsize=12, loc='upper right')
ax.grid(True, alpha=0.3)
ax.set_xlim(100, 2000)
ax.set_ylim(0, np.max(planck_intensity * 1e-13) * 1.1)
ax.text(200, np.max(planck_intensity * 1e-13) * 0.9,
'經典理論在此區域預測\n輻射強度趨於無限大!\n→ 「紫外災難」',
fontsize=11, bbox=dict(boxstyle='round', facecolor='red', alpha=0.3))
ax.text(800, np.max(planck_intensity * 1e-13) * 0.6,
'普朗克公式完美符合實驗\n→ 能量必須是量子化的!',
fontsize=11, bbox=dict(boxstyle='round', facecolor='blue', alpha=0.3))
plt.tight_layout()
plt.savefig('blackbody_radiation.png', dpi=300, bbox_inches='tight')
plt.show()
最後,我們用維恩位移定律和斯特藩-玻爾茲曼定律驗算一些具體數字:
peak_wavelength = 2.898e-3 / T
print(f"\n【維恩位移定律】")
print(f"溫度 T = {T} K")
print(f"峰值波長 lambda_max = {peak_wavelength*1e9:.1f} nm")
stefan_boltzmann = 5.67e-8
total_power = stefan_boltzmann * T**4
print(f"\n【斯特藩-玻爾茲曼定律】")
print(f"總輻射功率 proportional to T^4 = {total_power:.2e} W/m2")
# 執行
visualize_blackbody_radiation()
這個分析揭示了什麼?
藍色曲線(普朗克)完美描述了實驗數據。紅色曲線(經典)在長波長還勉強可以,但在紫外區徹底失敗。
如果沒有量子化,宇宙會在紫外線中爆炸。
經典物理的宏偉大廈,就這樣被一條曲線擊穿。
模型2:光電效應——愛因斯坦的光量子
接下來模擬光電效應。我們先設定五種金屬的功函數(束縛能):
def photoelectric_effect_simulation():
"""光電效應互動模擬"""
metals = {
'鈉 (Na)': 2.28,
'鋁 (Al)': 4.08,
'銅 (Cu)': 4.70,
'鋅 (Zn)': 4.31,
'銀 (Ag)': 4.73
}
wavelengths = np.linspace(200, 600, 100)
frequencies = c / (wavelengths * 1e-9)
photon_energies = h * frequencies / 1.6e-19 # 轉換為eV
功函數是什麼?
每種金屬對電子的「束縛力」不同。鈉只需要2.28 eV就能打出電子,銀需要4.73 eV。光子的能量必須大於功函數,才能把電子踢出來。
這解釋了為什麼紅光再強也打不出銅的電子——每顆光子的能量不夠。
現在畫兩張圖,揭示光電效應的核心悖論:
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 6))
# 左圖:不同金屬的截止頻率
colors = ['blue', 'green', 'red', 'orange', 'purple']
for (metal, work_function), color in zip(metals.items(), colors):
kinetic_energy = photon_energies - work_function
kinetic_energy[kinetic_energy < 0] = 0
ax1.plot(wavelengths, kinetic_energy,
linewidth=2, label=f'{metal} (W0={work_function} eV)', color=color)
cutoff_wavelength = h * c / (work_function * 1.6e-19) * 1e9
ax1.axvline(cutoff_wavelength, color=color, linestyle='--', alpha=0.5)
ax1.text(cutoff_wavelength, 5, f'{cutoff_wavelength:.0f}nm',
rotation=90, va='bottom', fontsize=9, color=color)
ax1.set_xlabel('光的波長(nm)', fontsize=13)
ax1.set_ylabel('光電子動能(eV)', fontsize=13)
ax1.set_title('光電效應:頻率決定電子能量\nKE = hv - W0',
fontsize=14, fontweight='bold')
ax1.legend(fontsize=10, loc='upper right')
ax1.grid(True, alpha=0.3)
ax1.set_xlim(200, 600)
ax1.set_ylim(0, 6)
ax1.axvspan(380, 750, alpha=0.1, color='yellow', label='可見光')
左圖清楚顯示:每種金屬都有自己的「截止波長」。波長太長(頻率太低),光子能量不夠,曲線直接歸零。
經典理論完全無法解釋這個現象——如果光是波,為什麼強光打不出電子?
# 右圖:光強度 vs 電子數(非能量)
intensities = np.array([1, 2, 5, 10])
wavelength_fixed = 300 # nm
photon_energy_fixed = h * c / (wavelength_fixed * 1e-9) / 1.6e-19
work_function_Na = metals['鈉 (Na)']
if photon_energy_fixed > work_function_Na:
electron_counts = intensities * 100
electron_energy = photon_energy_fixed - work_function_Na
bars = ax2.bar(intensities, electron_counts, width=0.8,
color='skyblue', edgecolor='navy', linewidth=2)
for bar, count in zip(bars, electron_counts):
ax2.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 10,
f'{int(count)}個電子\n每個能量{electron_energy:.2f}eV',
ha='center', fontsize=10,
bbox=dict(boxstyle='round', facecolor='yellow', alpha=0.5))
ax2.set_xlabel('光強度(相對值)', fontsize=13)
ax2.set_ylabel('射出的電子數', fontsize=13)
ax2.set_title(f'光電效應:強度決定電子數量(非能量)\n金屬:鈉,光波長:{wavelength_fixed}nm',
fontsize=14, fontweight='bold')
ax2.grid(True, alpha=0.3, axis='y')
ax2.text(6, 800,
'關鍵洞見:\n'
'光強度上升 → 電子數量上升\n'
'但每個電子的能量相同!\n'
'電子能量只由光頻率決定\n\n'
'經典波動理論無法解釋!\n'
'→ 光必須是粒子(光量子)',
fontsize=11, bbox=dict(boxstyle='round', facecolor='lightblue', alpha=0.7))
plt.tight_layout()
plt.savefig('photoelectric_effect.png', dpi=300, bbox_inches='tight')
plt.show()
右圖揭示了另一個關鍵:光強度增加10倍,射出的電子數量增加10倍——但每個電子的能量完全相同!
如果光是波,強光應該給每個電子更多能量。但實驗說:不對。
光子像子彈,一顆一顆地打在金屬上。強度只代表子彈的數量,每顆子彈的威力由頻率決定。
最後,我們用一個虛擬實驗室來驗證:
print("\n" + "="*60)
print("【光電效應虛擬實驗室】")
print("="*60)
chosen_metal = '鋅 (Zn)'
work_function = metals[chosen_metal]
print(f"\n選擇:{chosen_metal}")
print(f"功函數 W0 = {work_function} eV")
print(f"截止波長 lambda_0 = {h * c / (work_function * 1.6e-19) * 1e9:.1f} nm")
test_wavelengths = [200, 300, 400, 500]
print("\n實驗結果:")
print("-" * 60)
print(f"{'波長(nm)':<10} {'光子能量(eV)':<15} {'電子動能(eV)':<15} {'結果'}")
print("-" * 60)
for wl in test_wavelengths:
photon_e = h * c / (wl * 1e-9) / 1.6e-19
ke = photon_e - work_function
if ke > 0:
result = f"射出電子!"
else:
result = f"無法射出"
print(f"{wl:<10} {photon_e:<15.2f} {max(0, ke):<15.2f} {result}")
# 執行
photoelectric_effect_simulation()
執行結果:
選擇:鋅 (Zn)
功函數 W0 = 4.31 eV
截止波長 lambda_0 = 287.7 nm
波長(nm) 光子能量(eV) 電子動能(eV) 結果
------------------------------------------------------------
200 6.20 1.89 射出電子!
300 4.14 0.00 無法射出
400 3.10 0.00 無法射出
500 2.48 0.00 無法射出
看到了嗎?鋅的截止波長是287.7 nm。只有200 nm的深紫外光能打出電子,300 nm以上全部無效。
這就是量子世界的規則:能量是分立的,不是連續的。
模型3:決定論的終結——從牛頓到海森堡
最後,讓我們用一張圖回顧物理學世界觀的240年演變。
先建立時間軸上的關鍵事件:
def determinism_timeline():
"""視覺化物理學世界觀的轉變"""
fig, ax = plt.subplots(figsize=(14, 10))
events = [
(1687, "牛頓\n《原理》", "確定論宇宙\nF=ma", 'blue', 1.0),
(1814, "拉普拉斯\n妖精", "給我初始條件\n我知道一切", 'blue', 1.0),
(1865, "馬克士威\n電磁理論", "統一電磁光\n宇宙是可知的", 'blue', 0.9),
(1900, "普朗克\n量子假說", "能量量子化\nE=nhv", 'orange', 0.5),
(1905, "愛因斯坦\n光量子", "光是粒子\nE=hv", 'orange', 0.4),
(1913, "波耳\n原子模型", "電子軌道量子化\nn=1,2,3...", 'orange', 0.3),
(1923, "德布羅意\n物質波", "粒子也是波\nlambda=h/p", 'red', 0.2),
(1925, "海森堡\n矩陣力學", "告別可視化\n萬物皆矩陣", 'red', 0.1),
(1926, "薛丁格\n波動力學", "波函數 psi\n機率詮釋", 'red', 0.1),
(1927, "海森堡\n不確定性原理", "Dx·Dp >= h-bar/2\n確定性死亡", 'red', 0.0)
]
10個事件,橫跨240年。每個事件都有一個「確定性指數」——從1.0(完全確定)到0.0(完全不確定)。
注意一個驚人的事實:1687到1900年的213年間,確定性只下降了0.1。但1900到1927年的27年間,確定性暴跌了0.5。
量子革命的速度,比任何人預料的都快。
years = [e[0] for e in events]
certainties = [e[4] for e in events]
# 背景漸變:藍→橘→紅
for i in range(len(events)-1):
ax.fill_between([events[i][0], events[i+1][0]], 0, 1,
alpha=0.3, color=events[i][3])
# 確定性曲線
ax.plot(years, certainties, 'k-', linewidth=3, label='「確定性」指數')
ax.scatter(years, certainties, c=[e[3] for e in events],
s=300, edgecolor='black', linewidth=2, zorder=5)
# 標註事件
for year, person, description, color, certainty in events:
ax.text(year, certainty + 0.1, person,
ha='center', fontsize=10, fontweight='bold')
ax.text(year, certainty - 0.15, description,
ha='center', fontsize=8, style='italic',
bbox=dict(boxstyle='round', facecolor=color, alpha=0.3))
# 三個時代
ax.text(1750, 0.95, '經典時代\n「宇宙是時鐘」',
fontsize=14, ha='center', fontweight='bold',
bbox=dict(boxstyle='round', facecolor='lightblue', alpha=0.5))
ax.text(1910, 0.45, '量子萌芽\n「能量是分立的」',
fontsize=14, ha='center', fontweight='bold',
bbox=dict(boxstyle='round', facecolor='lightyellow', alpha=0.5))
ax.text(1926, 0.05, '量子革命\n「不確定性是本質」',
fontsize=14, ha='center', fontweight='bold',
bbox=dict(boxstyle='round', facecolor='lightcoral', alpha=0.5))
ax.set_xlim(1680, 1935)
ax.set_ylim(-0.2, 1.15)
ax.set_xlabel('年份', fontsize=14)
ax.set_ylabel('世界的「確定性」', fontsize=14)
ax.set_title('從確定到不確定:物理學世界觀的240年演變',
fontsize=16, fontweight='bold')
ax.grid(True, alpha=0.3)
ax.legend(fontsize=12, loc='upper right')
ax.set_yticks([0, 0.5, 1.0])
ax.set_yticklabels(['完全不確定\n(量子世界)', '半確定\n(過渡期)', '完全確定\n(經典世界)'])
plt.tight_layout()
plt.savefig('determinism_timeline.png', dpi=300, bbox_inches='tight')
plt.show()
這張圖從藍色(確定)漸變到紅色(不確定),視覺化了人類對宇宙認知的巨變。
最後,用一張表格對比三個時代的世界觀:
print("\n" + "="*70)
print("【物理學的三個世界觀】")
print("="*70)
worldviews = [
{'時代': '經典時代(1687-1900)', '代表人物': '牛頓、拉普拉斯',
'核心信念': '確定論', '宇宙比喻': '精密時鐘',
'因果': '過去決定未來', '自由意志': '幻覺(一切已註定)',
'上帝角色': '第一推動者'},
{'時代': '量子萌芽(1900-1925)', '代表人物': '普朗克、愛因斯坦',
'核心信念': '能量不連續', '宇宙比喻': '故障的時鐘',
'因果': '仍有因果,但有限制', '自由意志': '不確定',
'上帝角色': '「不擲骰子」(愛因斯坦堅信)'},
{'時代': '量子革命(1925-至今)', '代表人物': '海森堡、薛丁格、波耳',
'核心信念': '根本不確定性', '宇宙比喻': '機率雲',
'因果': '只有機率,無必然', '自由意志': '可能存在(有空間)',
'上帝角色': '「確實擲骰子」(波耳)'}
]
for wv in worldviews:
print(f"\n【{wv['時代']}】")
for key, value in wv.items():
if key != '時代':
print(f" {key:<10}: {value}")
# 執行
determinism_timeline()



這個分析揭示了什麼?
1814年:「給我初始條件,我知道一切。」
1927年:「你永遠無法同時知道位置和動量。」
113年間,人類從「全知」跌落到「根本無法全知」。
這不只是物理學的改變,是整個世界觀的崩塌。而這場崩塌,恰好與東方哲學兩千年前的洞見產生了驚人的共鳴。
東方哲學的回響
「道可道,非常道」
當普朗克在絕望中引入能量量子,當愛因斯坦說「光是粒子也是波」,當海森堡發現「不確定性是本質」——他們實際上在說:
我們對世界的描述,永遠無法完全捕捉世界本身。
這讓我想起老子《道德經》的開篇:
「道可道,非常道;
名可名,非常名。」
意思是:可以用語言描述的「道」,就不是永恆的道。可以命名的「名」,就不是永恆的名。
量子力學說:粒子在測量前沒有確定的狀態。
老子說:「道」在命名前沒有分別相。
量子力學說:觀察改變現實。
老子說:「天下皆知美之為美,斯惡已。」(一旦定義「美」,「醜」就產生了)
「有無相生」
老子又說:
「有無相生,難易相成,
長短相形,高下相傾。」
意思是:「有」和「無」互相依存,「難」和「易」互相成就。
波粒二象性不就是這樣嗎?
– 看「波」,就看不到「粒子」
– 看「粒子」,就看不到「波」
– 兩者互補,缺一不可
尼爾斯·波耳(量子力學哥本哈根詮釋的創立者)深受東方哲學影響。1947年,他被授予丹麥最高榮譽時,他選擇的家族徽章是什麼?
太極圖。
他在徽章上刻的拉丁文是:Contraria sunt complementa——「對立即互補」。
預告:下一集
量子力學花了25年,才讓西方科學家接受「世界不是確定的」。
但在2500年前,東方哲人就在說:
– 「色即是空,空即是色」(《心經》)
– 「萬物並作,吾以觀復」(《道德經》)
– 「夢裡明明有六趣,覺後空空無大千」(《永嘉證道歌》)
他們看到了什麼?
下一集,我們將探索:當量子力學的哥本哈根詮釋遇見京都禪學派,會發生什麼?
結語:革命的代價
1918年,普朗克獲得諾貝爾獎。頒獎詞說:「表彰他發現能量量子,為物理學開創新紀元。」
但普朗克的內心是複雜的。他點燃了革命,卻不確定這是對是錯。
1931年,在他73歲時,年輕的物理學家們已經建立了完整的量子力學體系——矩陣力學、波動力學、不確定性原理、機率詮釋。
這些理論徹底推翻了他珍視的經典世界觀。
有人問普朗克:「您後悔提出量子假說嗎?」
他說:
「一個新的科學真理不是透過說服對手,讓他們看到光明而獲勝的。而是因為對手終於死去,熟悉它的新一代成長起來。」
這句話有些悲涼,但也道出了真相:革命總是痛苦的,尤其對革命者自己。
普朗克打開了潘朵拉的盒子。
接下來的25年(1900-1925),物理學家將發現:
– 電子會「跳躍」而非「移動」
– 粒子可以同時在兩個地方
– 測量會「創造」現實
– 觀察者無法與世界分離
牛頓的宇宙——那座輝煌的、確定的、可預測的宮殿——正在崩塌。
而在廢墟中,一個更奇異、更神秘、更深刻的宇宙將會顯現。
