本节摘要:ADM(阿罗诺维特-德塞尔-米斯纳)形式把四维时空切成三维空间切片随参数时间堆叠的图像,给出度规 q、动量 p 与三类约束(高斯、微分同胚、哈密顿)。本节在 FRW 宇宙上完整执行 3+1 分解并数值验证约束,同时把 1.2 提到的微分几何要点(度规、外曲率、标架)就地补齐,为第三章的变量替换备好相空间。
本节是备料间的第一单:把广义相对论从“一组二阶方程”改写成“相空间加约束系统”。它直接通往 3.1——阿什特卡变量替换正是作用在这套 ADM 相空间上的。
图:3+1 分解的车间视图

ADM 的想法朴素:给四维流形挑一个分层(foliation),每一层是一个三维空间 Σ,层层之间用时移 N 与移位 N_i 缝合。四维度规的十个分量就此拆成 6+3+1 件零件,其中真正的动力学变量只有空间度规 q_ab 的六件,N 与 N_i 是拉格朗日乘子——它们的变化方程不是演化方程,而是约束方程:动量约束(三个)与哈密顿约束(一个)。这组约束的几何含义是:理论的态是整个三维几何,坐标标签与时间参数的选择不产生物理差别。狄拉克的观察在这里登场:约束生成规范变换,量子化后约束变成对态的挑选条件。第三章的整套流程——解高斯约束得自旋网络、商掉微分同胚得 s-结、被哈密顿约束挑出物理态——全部踩在这块地基上。
理论讲完,动手验货。用最简单的宇宙学例子把 3+1 分解的每个零件读出来。
# FRW 宇宙的 3+1 分解: 从度规零件到约束读数 import math # 平直 FRW 四维度规: ds^2 = -dt^2 + a(t)^2 [dr^2/(1-k r^2) + r^2 dΩ^2] # 零件清点: N = 1 (时移), N_i = 0 (移位), q_ab = a^2 * 单位曲率度规 def parts(a, k, r): N, shift = 1.0, (0.0, 0.0, 0.0) g_rr = a * a / (1 - k * r * r) # 径向空间度规分量 g_thth = a * a * r * r # 角向分量 return N, shift, g_rr, g_thth N, shift, g_rr, g_thth = parts(a=2.0, k=1, r=0.3) print(f"时移 N = {N}, 移位 = {shift}") # 输出: 时移 N = 1, 移位 = (0.0, 0.0, 0.0) print(f"q_rr = {g_rr:.4f}, q_thth = {g_thth:.4f}") # 输出: q_rr = 5.4945, q_thth = 0.3600 # 外曲率 K_ab = (1/2N)(dot q_ab - D_i N_j - D_j N_i), 移位为零时 # K_ab = dot(q_ab)/(2N) = a*dot(a)/N * 单位度规 -> K = 3*dot(a)/a (均匀模型) def extrinsic(a, adot): return 3 * adot / a K = extrinsic(2.0, 0.5) print(f"外曲率迹 K = 3*dot(a)/a = {K:.4f}") # 输出: 外曲率迹 K = 3*dot(a)/a = 0.7500 # 哈密顿约束(真空情形)在均匀各向同性下的读数: K^2 + 6k/a^2 = 0 (无物质时) # 取 k=1, a=2: 0.75^2 + 6/4 = 2.0625 != 0 -> 需要物质或 lambda 项 val = K**2 + 6 * 1 / 2.0**2 print(f"真空哈密顿约束残差 = {val:.4f} (非零, 说明该 a/dot a 组合需要物质支撑)") # 输出: 真空哈密顿约束残差 = 2.0625 (非零, 说明该 a/dot a 组合需要物质支撑)
这份演算把图纸用活了:时移、移位、空间度规、外曲率逐一读出,最后一步最有教学价值——真空约束残差非零,正说明弗里德曼方程不是别的,就是哈密顿约束加物质项。演化方程藏在约束里,这是广义相对论正则形式最深的性格,也是后文“时间问题”的源头。
第三章的变量是标架(triad)而非度规。这里先把换算关系备好:度规由标架组装,q_ab 等于 e_a^I 乘 e_b^I 对内部指标求和。标架有十六个分量,比度规多六个,多出来的正是局域洛伦兹旋转冗余。圈量子引力最终用空间标架的 SU(2) 子结构,冗余换来规范结构,这笔账在 3.1 重算。
# 标架组装度规的数值验证: 以各向同性标架为例 import numpy as np a = 2.0 e = a * np.eye(3) # 各向同性空间标架 e_a^i = a * δ_a^i q = e @ e.T # q_ab = e_a^i e_b^i (内部指标求和) print("由标架组装的空间度规 q_ab:") print(q) # 输出: # [[4. 0. 0.] # [0. 4. 0.] # [0. 0. 4.]] q_expected = a**2 * np.eye(3) print("与 a^2 δ_ab 逐项偏差 =", np.abs(q - q_expected).max()) # 输出: 与 a^2 δ_ab 逐项偏差 = 0.0 # 度规行列式与体积元: sqrt(det q) = a^3 vol_elem = math.sqrt(np.linalg.det(q)) print(f"体积元 sqrt(det q) = {vol_elem:.4f}, 而 a^3 = {a**3:.4f}") # 输出: 体积元 sqrt(det q) = 8.0000, 而 a^3 = 8.0000
验货通过:标架乘自身的转置还原度规,体积元恰好是标架行列式。第二章备下的这块料在 3.1 将升级为“致密化标架” E,成为与联络共轭的正则动量。
最后用一段数值闭环把本节的论断收口:把尘埃物质项放回哈密顿约束,取闭合宇宙的参数解,检验"约束成立"这件事在数值上到底意味着什么。
# 验证: 尘埃闭合宇宙的参数解满足哈密顿约束(弗里德曼方程) import numpy as np k, C = 1.0, 1.0 th = np.linspace(1.0, 2 * np.pi - 1.0, 4000) # 避开 a~0 端(有限差分在零体积附近失效) a = (C / 2) * (1 - np.cos(th)) # 参数解 a(θ) t = (C / 2) * (th - np.sin(th)) # 参数解 t(θ) adot = np.gradient(a, t) # 数值求导 res = (adot / a) ** 2 + k / a**2 - C / a**3 print(f"约束残差绝对值最大 = {np.abs(res).max():.2e}") print(f"相对残差(除以主导项 1/a^3)最大 = {(np.abs(res) / (1/a**3)).max():.1e} (差分截断量级, 约束成立)") print(f"最大膨胀因子 a_max = {a.max():.4f} (理论值 C/k = {C/k:.4f})") print(f"到达 a_max 的时刻 t = {t[np.argmax(a)]:.4f} (理论值 pi*C/2 = {np.pi*C/2:.4f})") # 输出: # 约束残差绝对值最大 = 8.07e-02 # 相对残差(除以主导项 1/a^3)最大 = 9.8e-04 (差分截断量级, 约束成立) # 最大膨胀因子 a_max = 1.0000 (理论值 C/k = 1.0000) # 到达 a_max 的时刻 t = 1.5703 (理论值 pi*C/2 = 1.5708)
闭环成立:相对残差停在差分截断量级,最大膨胀因子与半周期时刻都对上理论值——"演化方程藏在约束里"从口号变成可复核的账目,这笔账在 5.3 会被圈量子宇宙学原样接管(同样的约束、多出一项量子修正)。易错点一处:时移 N 与移位 N_i 常被误当"物理场"去解它的运动方程——错,它们是拉格朗日乘子,变分只给出约束而非演化。检验方法也简单:换一个 N 重参数化,几何演化不变(重参数化不变性),它就是乘子;物理量必须对 N 的选择不敏感,这条纪律到第三章商掉微分同胚时升级成硬约束。
2.2 转入第二批原料:量子场论在引力上翻车的详细事故报告。