暴胀不是终极大一统:量子海与相对论时空的可算接口

发布时间:2026/10/29 4:38:24
暴胀不是终极大一统:量子海与相对论时空的可算接口

有人问我,“暴胀把量子海时空和相对论时空统一起来了”这句话到底成不成立。我当时的回答是:它能统一的范围比宣传里说的小得多,但比很多人以为的更具体——它不是一个把所有物理都装进去的终极大一统,而是在一个很窄的能标窗口里,让两套本来压根说不到一块去的语言,第一次能算出同一个数并跟观测对上。那个数就是宇宙微波背景里的标量功率谱幅度,大约 2.1×10⁻⁹。

这篇东西写给两类人看:一类是被这句话吊起胃口、想知道背后到底有没有真东西的物理爱好者;另一类是已经在啃慢滚参数、曲率扰动、谱指数,但一直觉得公式和物理图像对不上的学生或者转行的工程师。我尽量不跳步骤,把“为什么必须是暴胀”“推导里哪一步是近似、哪一步是精确的”“数值上坑在哪”都摊开讲。量子海时空和相对论时空这两张图像的区别、冲突、以及在暴胀这层薄薄的接口上如何接壤,是全文的主线。

1. 两套时空语言:从基本变量层面就不同

1.1 量子海时空:真空不是空的,但也不是一种“介质”

量子场论里,真空是把所有模式的产生、湮灭算符都取基态之后的状态。每个模式贡献 ½ħω 的零点能,把所有模式加起来是个发散量。日常我们把这个发散扔掉,理由是能量零点的绝对值测不出来——这只在平直时空、且不考虑引力的时候成立。

“量子海”这个说法就是从这里长出来的:真空里不断有虚粒子对产生又湮灭,场在每一点上都有涨落,两个不同点的场值之间有关联,关联函数按距离的幂次衰减。这套图像在描述卡西米尔型效应、自发辐射、兰姆位移这类现象时非常好用,因为那些效应本质上都是“真空涨落被边界条件或者外场改变了”。

但有一点必须先说清楚,否则后面全跑偏:把量子海真的当成一片有密度、有流动、有速度场的介质,是错的。真空态在洛伦兹变换下不变,任何一个惯性系里看到的零点涨落谱完全一样,你没法通过观测真空涨落找到“自己相对海在怎么运动”。早年做过的那种寻找绝对参照系的实验,结果都是零。所以量子海只能当成一本记账用的账本:它告诉你场在各尺度上的涨落强度是多少,不告诉你时空本身是什么。

这本账真正的价值在于:它把“真空”变成了一个有内部结构的东西。不同尺度的模式之间存在纠缠,真空不是简单直积态,你对一个区域做迹平均,剩下的部分就是热态。这个性质后来成了暴胀里“量子涨落变成经典扰动”的关键伏笔。

1.2 相对论时空:度规是唯一的 dynamical 主角

广义相对论这边的图像干净得很。时空是一个四维流形,上面有一个洛伦兹号差的度规 g_μν,它决定了什么是类时、什么是类光、什么是类空,也就决定了因果结构。度规不是背景,它是被解出来的,源是应力能量张量。真空在这里的意思是“没有物质”,曲率可以完全没有,也可以很强烈。

这套语言里没有“涨落的海洋”,也没有优先的时间。时间坐标是你自己选的,物理结果必须跟坐标选择无关。爱因斯坦方程是二阶非线性偏微分方程,解的全局结构(奇点、视界、测地线完备性)本身就是物理内容。

两套语言摆在一起,差别是结构性的:

维度量子海时空相对论时空
基本变量场算符及其真空态度规张量 g_μν
时间地位外部参数,或干脆没有坐标,与因果结构绑定
“空”的含义基态,有零点能、有纠缠无物质,曲率可为零
涨落的地位定义的核心需要先线性化才有意义
适用尺度极短距离、高能标宏观、低曲率
能量来源零点能、真空期望值应力能量张量

1.3 三处正面冲突:真空能、奇点、以及“哪个态在引力”

第一处最刺眼,是真空能的量级。按量子场论的账本,把场的零点能截断在某个高能标,得到的能量密度大致是那个能标的四次方。如果按量子引力尺度估,是 10¹⁰⁹ eV⁴ 量级;而观测到的宇宙学常数对应的能量密度大约是 (2.3×10⁻³ eV)⁴,也就是 10⁻¹¹ eV⁴ 上下。中间差了大约 120 个数量级。这不是“算得不够准”,而是两套账本对同一件事记了完全不同的数。

第二处是奇点。相对论自己推出 a→0 时曲率发散,理论失效;量子场论那边,能标趋近极限尺度时耦合常数跑动、有效场论展开崩溃,同样失效。两边都在同一个地方说不出话,这恰恰说明它们都不是最终答案。

第三处比较微妙,是“哪个态在产生引力”。量子场论里,应力能量张量的期望值依赖于你选的是哪个态。平直时空里这无所谓,因为不同态之间差的是粒子激发,而绝对能量不可测。一旦把引力算进来,绝对能量就变得可测了——它直接进爱因斯坦方程右边。于是“真空的能量是多少”这件事从一个记账约定变成了物理问题,而恰恰是这个转变,让暴胀有了可乘之机。

我个人的理解是:这三个冲突里,第一个是数值问题,第二个是适用边界问题,只有第三个是真正的概念问题。而暴胀之所以能当接口,靠的就是第三个——它找到了一个特殊的时期,在那段时期里,真空能占据主导,度规接近德西特,量子场论在弯曲背景上的展开还能控制住,于是两套语言可以在同一个算例里同时用上。

2. 尺度因子作为共同传递量:两套语言的公共变量

2.1 从均匀各向同性度规到弗里德曼方程,全程只有一个未知量

要谈“演化”,就必须承认宇宙在大尺度上均匀各向同性。这个假设一加,度规就简化成:

ds² = -dt² + a²(t)[dr²/(1-kr²) + r²dΩ²]

整个宇宙的几何只剩一个函数 a(t) 和一个曲率符号 k。这一步看着简单,威力极大——它把“时空怎么演化”这个四维问题压缩成一个一维问题,两个完全不同的理论体系只要都对 a(t) 说话,就有对话的可能。

把度规代进爱因斯坦方程,得到两个方程:

H² = (8πG/3)ρ - k/a² + Λ/3 ä/a = -(4πG/3)(ρ + 3p) + Λ/3

其中 H = ȧ/a 是哈勃参数。再补上能量守恒(连续性方程):

ρ̇ + 3H(ρ + p) = 0

三个方程,两个独立。注意这里的 ρ 和 p 是什么?是总应力能量的能量密度和压强。这个“总”字就是接口所在:量子场论负责给出 ρ 和 p 的表达式,广义相对论负责把这两个量翻译成几何演化。谁也不用管对方内部怎么运作,只要交出一个数就行。

我特别喜欢这个结构,因为它像极了工程里的模块划分:一边是场论模块,输出应力能量张量的期望值;一边是几何模块,吃进这个张量吐出 a(t)。两边通过一个明确定义的接口通信,接口以外互不干涉。而暴胀,就是这个接口在极端条件下的一个特定工作状态。

2.2 状态方程把宇宙史切成几段,而暴胀要求的是一段“反常”的

把状态方程写成 p = wρ,连续性方程立刻可以积出来:

ρ ∝ a^(-3(1+w))

三种常见取值对应三段历史:辐射 w = 1/3,密度按 a⁻⁴ 掉;物质 w = 0,按 a⁻³ 掉;真空能 w = -1,密度不随 a 变。最后这个很反直觉——空间膨胀了,能量密度居然不变,这意味着总能量在增加,来源是压强做的负功。

再看加速条件。由第二个方程,ä > 0 要求 ρ + 3p < 0,也就是 w < -1/3。这个门槛很关键:普通物质和辐射永远做不到,只有接近真空能的状态才行。

组分wρ 随 a 的演化ä 的符号主导时期
辐射1/3a⁻⁴负极早期
物质0a⁻³负中段
曲率-1/3a⁻²零边界情形
真空能-1常数正暴胀期、当今

表格最后一行藏着整篇文章的枢纽。量子场论里最自然会产生 w = -1 的东西是什么?就是真空态本身。一个处于基态、没有激发的场,它的应力能量张量正比于度规,比例系数就是真空能密度——这正是宇宙学常数的形式。

所以在“量子场论提供 ρ 和 p”这个分工下,暴胀不需要任何花哨的新机制,它只需要一个条件:某个标量场处在势能远大于动能的状态,慢滚起来,让它的有效状态方程逼近 -1。这是整件事最漂亮的地方——也是最容易被讲成“凭空变出一个场”的地方。其实不是凭空,是真空能这个东西本来就存在,只是平时它太小、被物质淹没了。

2.3 量子场论如何给出能量密度:把那本账交出去

具体到操作层面,量子场论交出的东西是应力能量张量的真空期望值。对一个大尺度均匀的场位形,这可以写成理想流体形式:

⟨T_μν⟩ = (ρ + p)u_μu_ν + p g_μν

对一个处在慢滚中的标量场,ρ ≈ V(φ) + ½φ̇²,p ≈ -V(φ) + ½φ̇²。动能远小于势能时,p ≈ -ρ,w ≈ -1。

这里有个必须点破的细节:从量子场论到经典几何这一步,本质上是把算符替换成期望值,也就是所谓的半经典近似。这个近似成立的前提是度规的量子涨落可以忽略,同时场论的涨落对背景几何的反作用是一阶小量。暴胀期恰好满足——因为 H 远小于极限能标,曲率半径远大于极限长度。这就是为什么暴胀是“可算的”,而更早期不可算。

反过来说,这也解释了为什么暴胀不能叫“量子引力的解”。它没有解决度规本身该不该量子化的问题,它只是绕开了。它做的事情是:在量子场论和经典引力都还有效的那个重叠区域里,找到一个时间段,让两边的计算能对接上,而且对接的结果能被观测验证。

3. 暴胀推导主线:从真空涨落到曲率扰动

3.1 慢滚条件的存在理由:让度规近似德西特

一个标量场在膨胀背景里的运动方程是:

φ̈ + 3Hφ̇ + V'(φ) = 0

第二项是摩擦项,来自膨胀。如果摩擦足够大,φ̈ 可以忽略,于是 3Hφ̇ ≈ -V'。同时如果势能占主导,H² ≈ V/(3M_P²),其中 M_P 是约化普朗克质量,约 2.435×10¹⁸ GeV。

把这两条合起来,定义两个慢滚参数:

ε = (M_P²/2)(V'/V)² η = M_P² (V''/V)

ε 度量的是“势能斜率相对势能本身有多陡”,它同时决定了状态方程偏离 -1 的程度:1 + w = (2/3)ε。加速膨胀要求 ε < 1,实际观测要求 ε 远小于 1。η 度量的是势能的弯曲程度,它控制谱指数偏离 1 的多少。

用 e 折数 N 当时间变量,慢滚方程变得极其干净:

dφ/dN = -M_P² V'/V = -M_P √(2ε) N = ∫ H dt ≈ (1/M_P²) ∫ V/V' dφ

这个式子告诉我们一件很实用的事:给定势能形状,你可以直接用积分算出总共能暴胀多少 e 折,不需要解完整的运动方程。工程上做模型筛选,第一步就看这个积分够不够 60。

为什么是 60?因为要解决视界问题,需要把今天可观测宇宙的共动尺度在暴胀期间缩到当时的视界以内,算下来 N 大致在 50 到 67 之间,取决于再加热温度。这个数不是玄学,是可以从观测尺度反推的,后面第 4 节会给具体算法。

3.2 从度规扰动到功率谱,一步不跳

现在假设背景上有一点点不均匀。度规扰动在标量部分可以写成两个函数(用共形牛顿规范):

ds² = -(1+2Φ)dt² + a²(1-2Ψ)δ_ij dx^i dx^j

同时标量场也有扰动 δφ。这两个扰动不是独立的——你可以通过时间重参数化把 δφ 消掉一部分,剩下的规范不变量叫共动曲率扰动 R:

R = Ψ + H δφ / φ̇

这个组合的物理意义很直白:它描述的是“空间曲率的扰动”,在超视界尺度上守恒(对单场、绝热扰动而言)。这就是为什么我们关心它——它是能从暴胀期一路传到今天的量。

把二阶作用量写出来,经过变量替换 v = zR,其中 z = aφ̇/H,作用量变成一个带时变质量的自由标量场:

S₂ = ½ ∫ dτ d³x [ v'² - (∂v)² - (z''/z) v² ]

对应的运动方程是:

v_k'' + (k² - z''/z) v_k = 0

这就是整个推导的核心方程。在准德西特背景下,z''/z ≈ 2/τ²(τ 是共形时间,取负值),方程变成:

v_k'' + (k² - 2/τ²) v_k = 0

取标准真空条件(在 τ→-∞ 时只剩正向传播的解),解是:

v_k(τ) = e^(-ikτ) / √(2k) × (1 - i/(kτ))

现在到出视界那一刻,k = aH,即 kτ ≈ -1 时,|1 - i/(kτ)|² = 2,所以:

|v_k|² = 1/(2k³τ²) = a²H²/(2k³)

而功率谱的定义是 Δ²_R = k³ |v_k|² / (2π² z²)。代入 z² = a²φ̇²/H² = 2a²εM_P²:

Δ²_R = k³/(2π²) × a²H²/(2k³) / (2a²εM_P²) = H²/(8π² ε M_P²)

这一步是整篇文章里唯一必须硬推的地方,但推完之后一切就顺了。注意几个特征:幅度正比于 H²,反比于 ε——势能越平(ε 越小),同样的 H 产生的扰动越大。这个反比关系是很多人第一次看会卡住的地方,直觉上“涨落来自能量”,为什么势能越平扰动越大?因为 ε 小意味着暴胀持续得久,同一个模式被拉伸出视界的时间更长,累积的相位差更多。

张量扰动那边完全平行,只是没有 z 这个东西,方程里换成 a''/a ≈ 2/τ²,结果是:

Δ²_t = 2H²/(π² M_P²)

两者之比定义为张标比 r = Δ²_t/Δ²_R = 16ε。这个关系叫一致性关系,它是单场慢滚的一个硬预言——如果你测出 r 和 n_t,它们必须满足 r = -8n_t,否则单场慢滚就挂了。

3.3 把模型放进观测筛选:谱指数与张标比

谱指数定义为 n_s - 1 = d ln Δ²_R / d ln k。慢滚展开到一阶:

n_s - 1 = 2η - 6ε r = 16ε

这就把一个理论模型压缩成参数平面上的一个点。观测给出的约束是 n_s = 0.9649 ± 0.0042,r < 0.036(95% 置信度)。

拿几个常见势能一代入,结果非常能说明问题:

势能形式ε(N=60 时)n_sr现状
½m²φ²1/(2N) ≈ 0.00831-2/N ≈ 0.967≈ 0.13已被 r 上限排除
λφ⁴1/N ≈ 0.0170.950≈ 0.27严重超标
R² 型(大场展开)3/(4N²) ≈ 2.1×10⁻⁴1-2/N ≈ 0.967≈ 0.0033符合
α-吸引子(α→1)类似 1/N² 行为0.965 左右0.003 量级符合

这张表值得盯着看一会儿。最简单、最“自然”的两个势能,一个二次型一个四次型,全被张标比的上限打死了。活下来的是那些在 φ 大时势能特别平的形状,比如 R² 型在大 φ 极限下 V ∝ (1 - e^(-cφ))²,它是被一个指数因子压平的。这意味着观测在告诉我们:暴胀势在相关区间内必须异常平坦,平坦到不像随便写出来的多项式。

这就是为什么模型构建这几年都往“平坦方向”扎堆。我个人觉得这个现象挺有意思——它不是说数据偏好某个精美理论,而是说数据把一大类“随手一写”的模型排除了,剩下的都是带指数或者带极点的结构。这种结构往往有额外的对称性保护,比如共形对称或者移位对称。

3.4 退相干那一步:量子涨落如何变成“经典”密度扰动

推导到功率谱这里,其实还差最后一脚。前面算出来的是量子两点函数,而观测到的是经典的密度扰动。这中间怎么转?

答案在压缩态。模式出视界之后,k² 项相对 z''/z 可以忽略,解从振荡变成两支:一支增长、一支衰减。这个演化在相空间上对应极强的压缩(squeezing)——其中一个正交分量的不确定性被放大到宏观尺度,另一个被压到极小。压缩到什么程度?大概 e^(2N) 量级,60 个 e 折下是 10⁵² 这么夸张。

压缩到这个地步,两个原本不可交换的量的对易子相对它们的振幅小到可以忽略,于是这个量子态在实际上可以被当成一个经典的随机场。更细一层的工作会去算退相干——环境自由度(比如被积分掉的短波模式)跟长波模式的相互作用会让干涉项指数衰减。但说实话,在纯单场慢滚里,这个退相干过程是极其微弱的,因为相互作用太弱。这就引出了一个至今没有完全定论的问题:宇宙学扰动的“经典性”,到底是不是一个真问题?

我的看法是:从操作层面讲它不构成困难。因为不管你怎么解释,只要压缩足够强,所有观测量的统计性质都跟经典随机场一致,两者在实验上不可区分。但从概念层面讲,它是真问题——因为“观测者”在宇宙学里没有明确定义,你没法说“测量发生了所以波函数塌缩了”。这个裂缝留着,等下第 6 节再展开。

4. 暴胀为何能当两者的接口:三个老问题与一次能量交接

4.1 视界问题:真正被改变的是共动哈勃半径

标准大爆炸模型的问题不是“宇宙为什么均匀”,而是“它凭什么均匀”。CMB 上温度各向异性只有 10⁻⁵ 量级,而天空中相隔很远的两个区域,按标准膨胀史倒推回去,它们从来没有处在因果联系之中——光来不及在它们之间跑一个来回。

关键量是共动哈勃半径 1/(aH),它大致等于“此刻能建立因果联系的最大共动尺度”。在物质或辐射主导时期,a 按幂律增长,H 按时间倒数下降,两者乘起来 aH 是下降的,所以 1/(aH) 在增长——因果联系的共动范围在扩张,意味着过去它更小,那些区域确实没联系过。

暴胀做的事是让 1/(aH) 在早期收缩。因为 ḧ < 0 且 H 近似常数,aH 快速增长,1/(aH) 急剧缩小。于是今天处于视界外的那些区域,在暴胀之前是挤在同一个因果小 patches 里的。等暴胀结束、进入辐射主导,1/(aH) 重新开始增长,那些区域被“推”出视界,我们今天才看到它们均匀。

这个机制的量级很好估。要让今天观测到的整个共动尺度在暴胀开始时小于当时的视界,需要的 e 折数:

N ≈ ln(a₀H₀ / (a_start H_start)) ...

更实用的写法是从再加热温度反推:N ≈ 62 - ln(10¹⁶ GeV / V^(1/4)) + ... 各种版本差个几折,取 60 是个安全值。这也是为什么模型筛选里 N=60 成了默认约定,虽然它其实带着一个和再加热相关的误差棒。

4.2 平坦性问题:Ω-1 被指数压低

第二个问题更数学化。定义 Ω = ρ/ρ_c,其中 ρ_c = 3H²/(8πG)。由弗里德曼方程:

Ω - 1 = k/(a²H²)

右边这个量正比于 1/(aH)²。在普通膨胀时期它随时间是增长的,也就是说 Ω 会越来越偏离 1。今天观测到 |Ω-1| < 0.001 量级,倒推到极早期,这个数必须被调到 10⁻⁶² 甚至更小。这种调法在物理上难以接受,因为它要求初始条件被极端精细地挑选。

暴胀期 1/(aH) 急剧减小,于是 |Ω-1| 被压低 e^(-2N) 倍。60 个 e 折压掉 e^120 ≈ 10⁵²,正好把 10⁻⁶² 这种精度解释掉,不需要任何精细调节。

这里我要提醒一个容易混淆的点:暴胀不是让宇宙“变得”平坦,而是让曲率项相对总能量密度变得微不足道。空间曲率本身还是原来那个 k,只是 a 太大,1/a² 项被稀释了。这跟“把一块布铺平”不是一回事,更像是“把布撑大到局部看起来是平的”。

4.3 再加热:暴胀子把存货交还给标准模型

暴胀结束的时候,宇宙是空的——温度接近零,所有能量锁在暴胀子的势能和振荡里。这时候必须有一个机制把能量转成标准模型的粒子,否则就没有大爆炸核合成,没有 CMB,什么都没有。

机制是耦合。假设暴胀子 φ 跟某个标准模型场 χ 有 y φ χ² 这样的相互作用,φ 在势能极小附近振荡时,会以一定速率衰变。衰变宽度量级是:

Γ ≈ y² m_φ / (8π)

再加热温度由 Γ 和 H 的平衡点决定,T_rh ≈ √(Γ M_P)(数量级上,忽略常数因子)。

举个例子:m_φ ~ 10¹³ GeV,y ~ 10⁻⁵,则 Γ ≈ 10⁻¹⁰ × 10¹³ / 25 ≈ 40 GeV,T_rh ≈ √(40 × 2.4×10¹⁸) GeV ≈ 10¹⁰ GeV。这个量级是合理的。

再加热温度不是自由参数,它受好几条约束。太低了会影响重元素合成的初始条件,太高了会过度产生某些遗迹粒子(比如在超对称框架里,会破坏轻元素的丰度预言)。而且 T_rh 会反馈到上一节的 N 上——T_rh 越低,暴胀要持续得越久。所以模型拟合里 N 和 T_rh 是联合约束的。

再加热这一段常被略过,但它其实是从“暴胀”过渡到“经典宇宙”的关键接缝。前面所有的推导——功率谱、谱指数——都发生在暴胀期;而这些扰动的演化、转化、最后在 CMB 上的表现,全靠再加热这段把它们重新接回热大爆炸的轨道上。少了这步,整套推导是悬空的。

4.4 演化时间线的三段划分

把“演化”这件事讲清楚,我习惯切成三段:

第一段是量子海主导期。能标接近极限尺度,度规的量子涨落和场论涨落混在一起,两者都不可忽略,没有任何一个可靠的有效描述。这一段目前只能靠猜测,属于量子引力的地盘。

第二段是暴胀期。这是接口区间。其特征是:背景几何近似德西特、能量主导项是真空能、场论在弯曲时空上的展开仍然可控、度规的量子修正因 H ≪ M_P 而被压低。这时候量子场论负责给出曲率扰动谱,广义相对论负责把这个谱在膨胀背景上传播,两边计算的衔接处误差可控。

第三段是经典期。从再加热开始,暴胀子的能量交出去、真空能的主导地位结束、普通物质和辐射接管,此后广义相对论加上微扰理论就能一路算到今天。所有的结构形成、CMB 声学峰、大尺度结构的统计,全在这一段。

“暴胀是统一的关键”这句话,严格说应该表述为:暴胀提供了从第一段跨到第三段的一个可计算的过渡态。它不是终点,也不是起点,是中间那块唯一能算的窄带。

5. 动手算一遍:慢滚积分与功率谱的数值实现

5.1 用 e 折数当时间变量的 RK4

理论看完了,得跑数。用 N 当自变量做慢滚积分是最省事的写法,因为 N 直接就是观测量,避免了“现在到底是几秒”这种物理上没意义的问题。

import numpy as np MP = 2.435e18 # GeV, 约化普朗克质量 def potential(phi): """phi 以 MP 为单位, 返回 (V, dV/dphi, d2V/dphi2), V 以 MP^4 为单位""" # 二次型: V = 1/2 m^2 phi^2, m = 1e-5 MP m = 1e-5 V = 0.5 * m**2 * phi**2 dV = m**2 * phi d2V = m**2 return V, dV, d2V def slowroll_rhs(phi): V, dV, d2V = potential(phi) eps = 0.5 * (dV / V)**2 eta = d2V / V dphi_dN = -dV / V # 慢滚近似 return dphi_dN, eps, eta def integrate(phi0, N_total, dN=1e-4): phi = phi0 N = 0.0 traj = [] while N < N_total: k1 = slowroll_rhs(phi) k2 = slowroll_rhs(phi + 0.5*dN*k1[0]) k3 = slowroll_rhs(phi + 0.5*dN*k2[0]) k4 = slowroll_rhs(phi + dN*k3[0]) dphi = (dN/6.0)*(k1[0] + 2*k2[0] + 2*k3[0] + k4[0]) phi += dphi N += dN eps = (k1[1] + 2*k2[1] + 2*k3[1] + k4[1]) / 6.0 eta = (k1[2] + 2*k2[2] + 2*k3[2] + k4[2]) / 6.0 traj.append((N, phi, eps, eta)) if eps >= 1.0: break return np.array(traj) # 先找到暴胀结束点: eps = 1 traj = integrate(15.5, 200.0) N_end = traj[-1, 0] print(f"暴胀总 e 折数: {N_end:.2f}") # 再取 N_end - 60 处的参数 target = N_end - 60.0 idx = np.argmin(np.abs(traj[:, 0] - target)) N, phi, eps, eta = traj[idx] n_s = 1 + 2*eta - 6*eps r = 16*eps print(f"在 N={N:.1f}: eps={eps:.5f}, eta={eta:.5f}") print(f"n_s = {n_s:.4f}, r = {r:.4f}")

跑二次型势能、初值取 φ=15.5 M_P、m=10⁻⁵ M_P,你会得到 N_end 大约 60,ε ≈ 0.0083,n_s ≈ 0.967,r ≈ 0.13。跟解析公式 1-2/N 对得上。然后你立刻会发现 r=0.13 远超 0.036 的上限——这个模型被排除了。这就是为什么我说数值跑一遍比看公式有感觉。

换成 R² 型势能,把 potential 函数改掉:

def potential_staro(phi, M=1.0): """R^2 型: V = V0 * (1 - exp(-sqrt(2/3) phi))^2""" x = np.sqrt(2.0/3.0) * phi V0 = 1e-8 ex = np.exp(-x) V = V0 * (1 - ex)**2 dV = V0 * 2 * (1 - ex) * ex * np.sqrt(2.0/3.0) d2V = V0 * 2 * np.sqrt(2.0/3.0)**2 * ex * (2*ex - 1) return V, dV, d2V

这个改完跑,r 会掉到 0.003 量级,n_s 还是 0.967 左右。同一个 n_s,r 差 40 倍——这就是张标比的判别力所在。

5.2 功率谱的数值验证:跟解析解对一下

光有慢滚参数还不够,得验证那个 H²/(8π²εM_P²) 的公式。最直接的办法是数值解模式方程,跟解析解对比。

from scipy.integrate import solve_ivp def ms_mode_numeric(k=1.0, tau_start=-200.0, tau_end=-0.5): """解 v'' + (k^2 - 2/tau^2) v = 0, 标准真空初条件""" def rhs(tau, y): v, dv = y d2v = -(k**2 - 2.0/tau**2) * v return [dv, d2v] # 初条件: v = exp(-i k tau)/sqrt(2k), dv = -i k * v v0 = np.exp(-1j*k*tau_start) / np.sqrt(2*k) dv0 = -1j*k*v0 sol = solve_ivp(rhs, [tau_start, tau_end], [v0, dv0], rtol=1e-10, atol=1e-12, dense_output=False) return sol.y[0, -1] def ms_mode_analytic(k=1.0, tau=-0.5): return np.exp(-1j*k*tau)/np.sqrt(2*k) * (1 - 1j/(k*tau)) v_num = ms_mode_numeric() v_ana = ms_mode_analytic() print(f"数值: {v_num:.6f}") print(f"解析: {v_ana:.6f}") print(f"相对误差: {abs(v_num - v_ana)/abs(v_ana):.2e}")

误差应该在 10⁻⁶ 以下。这一步很重要——很多人写宇宙学代码,直接抄解析公式,从来没验证过自己的数值积分是对的。一旦要处理超出慢滚的情况(比如势能有台阶、有拐点),解析公式就失效了,这时候只能靠数值,而数值对不对,全看你有没有在能验证的地方验证过。

5.3 三个特别容易踩的数值坑

第一个坑是暴胀结束判据。慢滚近似在 ε→1 附近崩掉,因为 φ̈ 不能再忽略。如果你在 ε=1 处直接截断,得到的 N_end 会偏大几个百分点。想准一点,要么用完整的 φ̈+3Hφ̇+V'=0 积分,要么在 ε 接近 0.1 之后切换到精确方程。我一般就用完整方程,反正数值上没多难。

第二个坑是单位。M_P 有两种约定:约化普朗克质量 2.435×10¹⁸ GeV 和普朗克质量 1.22×10¹⁹ GeV,差 √(8π) ≈ 5.01 倍。如果你混用了,ε 会差 25 倍,r 差 25 倍,直接从一个通过的模型变成一个被排除的模型。我在代码里一律用约化质量,且在函数注释里写死,避免回头自己都忘了。

第三个坑是幅度归一化。前面算出来的 Δ²_R = H²/(8π²εM_P²) 是个无量纲量,观测值是 2.1×10⁻⁹。这个值用来定标势能的整体高度 V₀ —— 也就是说,给定势能形状,V₀ 不是自由参数,它被幅度锁死。很多人在拟合的时候把 V₀ 也当自由参数乱调,那是重复计数了。正确做法是:形状参数(比如质量、耦合)从 n_s 和 r 定,整体高度从 A_s 定。

举个具体的:n_s = 0.965 时,二次型模型给出 m ≈ 1.5×10¹³ GeV;R² 型给出 V₀^(1/4) ≈ 10¹⁶ GeV,对应 H ≈ 10¹⁴ GeV 量级。这些数不是随便写的,是从 A_s 和 r 反推出来的。

6. 这套框架还难以成立的四个环节

6.1 暴胀自己也需要初始条件

最尴尬的一点:暴胀解决的是“为什么宇宙这么均匀、这么平”,但它自己需要一个均匀、平坦、且势能占主导的初始 patch。这个 patch 要有多大?至少要比一个哈勃体积大,而且里面的梯度要足够小。

问题在于,这个初始条件在什么意义上“自然”?在经典层面,相空间里满足条件的区域可能很小。这就引出了永恒暴胀和测度问题——一旦允许量子涨落,暴胀会在某些区域永远持续下去,产生无穷多的“口袋宇宙”,而你怎么在无穷集合上定义概率,是个至今没有共识的问题。

我不认为这是个能靠技术手段绕过去的问题。它更像是提示我们:暴胀不是宇宙史的起点,它只是我们能算的那一段。在它之前还有东西,而那东西我们现在说不出话。

6.2 跨极限尺度的问题不是技术细节

第二个坎更具体。今天我们观测到的 CMB 尺度,在暴胀开始时对应的物理波长是多少?把 e 折数倒推回去,60 个 e 折加上从再加热到今天的膨胀,那些模式的物理波长在暴胀初期比极限长度还短很多个数量级。

这就是所谓的跨极限尺度问题。意思是:我们用来预言今天观测量的那些初始模式的真空条件,是在一个我们完全不理解物理的能标上