本讲在课程中的位置

第二讲(ED I)把问题变成了矩阵,第三讲(ED II)把矩阵对角化并算出谱函数。两讲合起来,你已经能对一个 $N=16$ 的海森堡环吐出前几十个本征值了。然后呢?

这一串数字你几乎什么都没学到。 它们是什么动量?什么宇称?什么自旋?对应哪一条色散关系?——这就是第四讲(ED III,第 1 章的最后一场)要解决的问题:给本征值贴标签。

三次 ED 课切的是同一张地图(ED 目录页)的不同块:

目录项 第二讲(ED I) 第三讲(ED II) 第四讲(ED III)
main idea 第 2–7 页 复述 复述
matrix representation 第 8–15 页 直接使用 直接使用
implement symmetries $U(1)$ 分块 顺带($k$ 扇区) 第 3–13 页(本讲主体)
Lanczos method 提及 第 3–16 页 直接使用(作基准)
various applications 各种应用 谱函数与实验 拓扑与 FQHE

别把这一讲当成”第三讲的续集”。 第三讲的主线是 Lanczos(数值算法),第四讲的主线是对称性分块(群论/线性代数)。两讲共享的只有那张目录页。

一句话概括本讲

把哈密顿量按动量分块,让每个本征值带上 $k$ 的标签;用严格可解模型证明标签贴得对;然后把这些带标签的能级送进拓扑物态。

本讲有三条逻辑线,各回答一个不同的问题:

  1. 怎么做:平移对称性 $[T,H]=0$ ⟹ 投影算符 $P_k$ ⟹ 动量分块矩阵元(第 3–13 页);
  2. 怎么知道做对了:用横场 Ising 模型(JW → Fourier → Bogoliubov)的解析解当”标准砝码”,多体能级逐条对上 ED(第 14–22 页);
  3. 为什么值得做:带标签的能级(特别是 $E(k)$ 的拓扑)是分数 Chern 绝缘体、2016 年诺贝尔奖物理的核心(第 23–31 页)。

三条线、一张地图

本讲有一条贯穿始终的”隐形主线”:

对称性不是可选项,是必需品。 每实现一种对易的对称性,$H$ 就再碎一块、维度就再降一个量级。

第 3 页那张三栏分块图($H\to$ 方块对角 $\to$ 更细的方块对角)是本讲唯一、也是最该记住的示意图。它的量化版:

对称性 做了什么 $N=16$,$S^z_{tot}=0$
无 全空间 $2^{16}$ $65536$
$U(1)$(第二讲) 把 $65536$ 降到 $12870$ 约 $1/5$
平移(本讲) 把 $12870$ 降到每个 $k$ 扇区的 $800\sim810$ 再降约 $1/16$
两级合起来 — 约 $1/80$

作业里那条 “$N=16$ 全空间稠密矩阵需要 34 GB“ 的线,就是用来量这个「$1/80$」值多少钱的。后面你会反复看到同一句潜台词:维数每降一个量级,ED 能碰的问题就大一圈。

约定表

承接第二讲、第三讲,本讲新增部分用粗体标出:

量 本讲(第四讲)约定
单位 $\hbar=1$,$k_B=1$,晶格常数 $a=1$;自旋模型取 $J_1=1$
基矢表示 沿用第二讲:格点 $i$ 就是第 $i$ 位,格点 0 是最低位
自旋算符 $S^\alpha_j=\tfrac12\sigma^\alpha_j$;$\sigma^z=\mathrm{diag}(1,-1)$,$\sigma^x=\begin{pmatrix}0&1\\1&0\end{pmatrix}$
比特值 自旋比特串 1 ↔ 自旋向上(↑)、0 ↔ 向下;费米子比特串 1 ↔ 占据
平移算符 $\hat T\lvert s\rangle=\lvert\mathrm{rot}(s,+1)\rangle$,循环移位;$\hat T^N=\hat{\mathbb{1}}$
动量 $k=0,1,\ldots,N-1$;格点动量 $K=2\pi k/N$;$T$ 本征值为 $e^{-iK}$
投影算符 $P_k=\frac1N\sum_{j=0}^{N-1}e^{+i\frac{2\pi}{N}kj}\,T^j$
轨道/代表态 $\lvert r\rangle$ 是轨道中整数标号最小的态;轨道长度 $R$(整除 $N$)
动量基归一化 $\lvert r_k\rangle=\sqrt{R_r}\,P_k\lvert r\rangle$
动量分块矩阵元 $\langle r’_k\lvert H\rvert r_k\rangle=\frac{\sqrt{R_{r’}R_r}}{N}\sum_je^{+i\frac{2\pi}{N}kj}\langle T^{-j}r’\lvert H\rvert r\rangle$
横场 Ising 模型 $H=-J\sum_i(g\sigma^x_i+\sigma^z_i\sigma^z_{i+1})$,$J,g\ge0$;$g_c=1$
JW 变换 $\sigma^z_i=-\prod_{j<i}(1-2C_j^\dagger C_j)(C_i+C_i^\dagger)$,$\sigma^x_i=1-2C_i^\dagger C_i$
费米子宇称 $P=\prod_i\sigma^x_i=e^{i\pi M}$,$M=\sum_iC_i^\dagger C_i$
准粒子谱 $\epsilon_k=2J\sqrt{1+g^2-2g\cos k}$;零点能 $\epsilon_{\rm sum}=\tfrac12\sum_k\epsilon_k$
多体谱约定 $g=2$ 与 $g=0.5$ 两组,$N=4$;$P=+1$ → APBC($n$ 半整数),$P=-1$ → PBC($n$ 整数)

注意:本讲有「两套动量约定」,不要混。 一是格点动量 $K=2\pi k/N$(第 5、6 页,$k$ 取整数);二是 TFIM 严格解里的动量 $k=2\pi n/N$(第 16 页,$n$ 取整数或半整数)。读第 19–22 页的表格时,看到 $k_{-1.5}$、$k_{0.5}$ 这种下标不要惊讶——那是”半整数 $n$”,是反周期边界条件的必然结果,不是笔误。

主线一:贴标签——平移对称性与动量分块

为什么要贴标签:色散关系 E(k) 决定物理

固体物理里,能带 $E(\mathbf k)$ 是几乎所有输运、光学、磁学性质的出发点。对强关联格点模型同样如此:

  • $E_0(k)$ 的最小值位置告诉你基态是什么(平移不变的 $k=0$?还是反铁磁波矢 $k=\pi$?);
  • 基态动量在参数空间里的移动是相变的信号(本讲作业里 $J_2$ 扫描会亲眼看到);
  • 低能激发的色散(自旋波)决定了低温比热与自旋动力学。

所以”本征值”不是一个裸的数字,它必须带上动量的标签。这就是本讲的核心任务。

为什么是平移对称性:对称性 = 分块

平移算符把每个格点上的自旋搬到下一个格点,在比特表示里就是循环移位:

def rot(s, N, m=1):
"""把格点 j 上的比特搬到 j+m(模 N)。"""
t = 0
for j in range(N):
if (s >> j) & 1:
t |= 1 << ((j + m) % N)
return t

$N=4$ 的例子:$T\lvert0011\rangle=\lvert0110\rangle$、$T^2\lvert0011\rangle=\lvert1100\rangle$、$T^3\lvert0011\rangle=\lvert1001\rangle$。

“对易的算符有共同的本征态” 是整个方法的合法性来源,但我们实际只用到一个弱得多的性质:

$H$ 不把 $T$ 的本征子空间混起来。 证明只要三行:设 $T\lvert\psi\rangle=e^{-iK}\lvert\psi\rangle$,则 $T(H\lvert\psi\rangle)=HT\lvert\psi\rangle=e^{-iK}(H\lvert\psi\rangle)$。所以 $H$ 是分块对角的。这个证明只用 $[T,H]=0$,即使有简并也完全成立。

机器怎么造:T、P_k 与轨道

怎么从任意态 $\lvert r\rangle$ 造出动量本征态?用傅里叶投影:

符号方向极易搞反。 $P_k$ 的相位是 $e^{+i2\pi kj/N}$,而 $T$ 的本征值是 $e^{-iK}$(负号)。这不是笔误——$T$ 作用后把 $j$ 变成 $j-1$,恰好抽出 $e^{-i2\pi k/N}$。把相位写成负号,你会得到 $k$ 与 $N-k$ 互换的结果。 由于 $E(k)=E(-k)$,很多时候你看不出来;但一旦有简并(作业里 $J_2=0.5$ 的基态同时在 $k=0$ 与 $k=\pi$),你报告的基态动量就反了。

$P_k$ 满足三条性质(前两条幻灯片用蓝底高亮,第三条最重要):

完备性意味着 $\sum_k\dim_k=\dim$:把 $H$ 投影到全部 $N$ 个 $k$ 扇区、再拼起来,必须还原原来的 $H$。 这是本讲最有用的一条自检——“漏态/重态”一抓一个准(它抓不住归一化错误,后面会讲为什么)。

$P_k\lvert r\rangle$ 可能等于零。 设轨道长度 $R$($T^R\lvert r\rangle=\lvert r\rangle$),则

轨道长度 $R$ 一定整除 $N$(拉格朗日定理)。如果你算出的 $R$ 不整除 $N$,说明 rot 写错了。 对固定的 $k$,允许的 $R$ 必须是 $N/\gcd(k,N)$ 的倍数——这是后面 $800\sim810$ 维度摆动的来源。

N=4 的轨道结构与 P_k 投影模式

读图:

  • 左图:$N=4$ 全空间 16 个态的轨道划分。轨道长度 $R=1$(铁磁/空态)、$R=2$(只有 $\{0101,1010\}$)、$R=4$(一般轨道)。代表态取轨道中整数标号最小的那个:$\{0,1,3,5,7,15\}$。
  • 右图:每个代表态在哪些 $k$ 下满足 $P_k\lvert r\rangle\neq0$。短轨道 $\lvert0101\rangle$ 只在 $k=0,2$ 出现($kR=2k$ 要整除 $4$)。这就是三栏图里”方块大小不均匀”的具体来源。

不要把”$P_k\lvert r\rangle=0$”理解成”这个态在这个 $k$ 扇区里不存在”。 正确的理解是:这个代表态不能用来生成该 $k$ 扇区的基,但该扇区里仍可能有由别的代表态生成的、能量相同的态。

判据里的 “for spin systems” 是最关键的一句——对费米子它要修正,见「陷阱一」。

预处理一次:每个组态记三件事——是不是代表态、属于哪个代表态、离它几步。这就是 Check 表(与第二讲的 Lin 表是同一类东西:”把昂贵搜索提前算好、做成整数数组”)。方向必须小心:查表时 $i=\mathrm{rot}(\text{rep},j)$,做矩阵元时用的是 $\langle T^{-j}r’\lvert H\rvert r\rangle$,需要 $\mathrm{rot}(r’,-j)$。方向反了等于做 $k\to-k$ 替换,”看起来差不多对”但细节全错。

核心公式:归一化与矩阵元

$P_k\lvert r\rangle$ 不是单位向量。实测($N=6$ 海森堡环,$S^z_{tot}=0$):代表态 $r=7$ 的 $R=6$,$\langle r\lvert P_0\rvert r\rangle=1/6$;代表态 $r=21$($\lvert010101\rangle$)的 $R=2$,$\langle r\lvert P_0\rvert r\rangle=1/2$。所以

本讲要写进代码的矩阵元公式(红框):

推导只有三步,全部靠投影算符的性质($P^\dagger=P$、$P^2=P$、$[P,H]=0$)和 $\langle r\lvert P_k\rvert r\rangle=1/R_r$。

“投影算符只需作用一次” 是计算量的关键:如果按定义硬算 $\langle r’\lvert P_k^\dagger HP_k\rvert r\rangle$,要对每一对 $(r’,r)$ 作用两次投影,复杂度 $\mathcal O(n_{\rm rep}^2N)$。优化后($Y=HB$ 一次稀疏乘 + 一次 tensordot)降到 $\mathcal O(n_{\rm rep}D+n_{\rm rep}^2N)$,因为 $n_{\rm rep}\ll D$,第一步反而是主要开销。

验证厄米性是本页最重要的自检。$H_k$ 一般复数,但必须厄米。在 $N=6$ 海森堡环($\dim=20$)上实测各种写法的症状:

写法 $\lVert H_k-H_k^\dagger\rVert_{\max}$ 与全谱最大偏差 落在全谱内
$\sqrt{R_{r’}R_r}$(正确) $2.4\times10^{-15}$ $2.0\times10^{-15}$ $20/20$
完全不给归一化因子 $4.8\times10^{-16}$ $1.87$ $2/20$
单侧归一化 $\sqrt{R_r}$ $2.6\times10^{-1}$ $1.23$ $2/20$
用 $R_{r’}R_r$ 而非开方 $1.4\times10^{-14}$ $9.35$ $2/20$
漏掉 $1/N$ $1.4\times10^{-14}$ $14.0$ $2/20$

厄米性检查的盲区:错误的整体归一化照样厄米

读图:正确的 $\sqrt{R_{r’}R_r}/N$ 给出的动量块本征值(蓝方块)与全空间 ED(黑圆)逐点重合(偏差 $3\times10^{-15}$);”漏掉 $1/N$”(红三角)虽然照样厄米,本征值却完全对不上(偏差 $1.87$)。

几个值得咀嚼的事实:

  1. 厄米性检查抓不住”整体少一个归一化因子”——那种错误照样厄米,必须靠与全空间 ED 逐条对比来抓。只有”两侧归一化不对称”才破坏厄米性。这就是”能跑 ≠ 对”的活教材。
  2. “丢弃 $P_k\lvert r\rangle=0$”必须在构造基之前做。先构造后丢弃,会得到带零行零列的奇异矩阵,本征值里多出一堆 0——里面可能混着 $H$ 真正的零本征值,非常难分辨。
  3. 当 $R_{r’}=R_r=N$ 时因子正好是 1,这是”一般位置”下最常见的情形——也是为什么漏掉它时结果”看起来几乎对”。

维度核对:三种数法

$N=4$ 有三种数法,都等于 16:只用 $U(1)$($1+4+6+4+1$)、$U(1)$+平移($1+4+6+4+1$ 按 $k$ 重排)、只用平移。它们必须一致,因为都只是”把同一个 16 维空间按不同顺序数了一遍”——完备性关系 $\sum_kP_k=\hat{\mathbb{1}}$ 保证了这一点。这是”某些代表态被漏掉/重复计入”的自检;但它抓不住归一化或相位错误(那两类错误维度是对的,只有能量会错)。

$N=16$ 的实测($S^z_{tot}=0$,$\Delta=1$,$J_1=1$):

轨道长度 $R$ 轨道个数 贡献的态数
16 800 12800
8 8 64
4 1 4
2 1 2
合计 810 12870

N=16 各动量扇区维度

读图:各 $k$ 扇区维度 $[810,800,808,800,809,800,808,800,810,\ldots]$ 在 $800\sim810$ 间摆动(不是整齐的 $12870/16=804.375$),由判据 $\mathrm{mod}(kR,16)=0$ 决定:$k=0$ 与 $k=\pi$ 最大(810),$k$ 为奇数时只有那 800 个”一般轨道”。$\sum_k\dim_k=12870$ 必须精确成立。

E(k):本讲的第一个物理结论

$J_2=0$(纯 Heisenberg 环)时,$E_0(k)$ 的最小值在 $k=0$($-7.142296360617$),次小在 $k=\pi$($-6.872106678366$),中间更高。这是典型的自旋波型色散:基态平移不变($k=0$),最低激发在反铁磁波矢 $k=\pi$。$E_0/N=-0.446393522539$ 向热力学极限 $1/4-\ln2=-0.443147180560$ 收敛。

$J_2=0.5$(Majumdar-Ghosh 点)时,$E_0(k=0)=E_0(k=\pi)=-6.000000000000$ 精确相等——基态二重简并,分属 $k=0$ 与 $k=\pi$。这就是作业要验证的两个二聚体态 $\lvert D_0\rangle$、$\lvert D_1\rangle$ 的来源。

E(k) 色散关系:J2=0 与 J2=0.5(Majumdar-Ghosh 点)

读图:$J_2=0$(蓝)$k=0$ 最低、$k=\pi$ 次低;$J_2=0.5$(红)$k=0$ 与 $k=\pi$ 精确简并在 $-6.0$。

“基态在哪个 $k$”必须看全局最小值,不能只看某一列:$J_2=0.5$ 时 $k=4,12$ 扇区最低能量也是 $-5.0$,但比基态高 1.0。作业选做的 $J_2$ 扫描会看到基态动量从 $k=0$ 跳到 $k=\pi$(约 $J_2=0.6$)——阻挫导致的一级变化,这就是”贴标签”换来的第一个物理。

陷阱一:费米子符号

$T$ 同时平移 $\uparrow$ 与 $\downarrow$ 的组态——对费米子,$T$ 可能引入额外的符号。因为”平移”在费米子语言里不是一个”搬位置”的操作,而是算符恒等式 $TC^\dagger_{i\sigma}T^{-1}=C^\dagger_{i+1,\sigma}$:作用后产生算符顺序被打乱,每交换一次相邻的产生算符就出一个 $-1$。

$N=4$ 的例子($\uparrow=\{0,2\}$,$\downarrow=\{0,1\}$):$T^2$ 后需要交换 $C^\dagger_{2\uparrow}$ 与 $C^\dagger_{0\uparrow}$ 一次 ⟹ 一个 $-1$。判据修正为

当 $\sigma_R=-1$ 时,允许的 $k$ 整体平移半个周期。

这个陷阱最阴险的地方:$\sum_k\dim_k$ 仍然正确(总数守恒);每个 $k$ 扇区里的本征值确实都是 $H$ 的真实本征值;但把能量归属到 $k$ 上时全错了,$E(k)$ 形状错误。它不触发任何”总数不对”的报警。 唯一能抓住它的校检:对小的费米子体系,用「手搓动量基」与「直接对角化 $T$ 再分块」两条独立路线算 $E(k)$,逐条对比。

最大的好消息:自旋模型(本讲与作业的 $J_1$–$J_2$ XXZ)没有这个问题——自旋的”平移”是真正的比特循环移位,$T^R\lvert r\rangle=\lvert r\rangle$ 严格成立。这一页是给以后做 Hubbard、$t$–$J$ 的自己留的警告。

绕开手搓动量基:五条路线与惩罚项

手搓动量基空间最小、能做 Lanczos,但编码烦人。幻灯片给了五条路线:

# 路线 优点 缺点
1 手工构造动量基 空间最小,可做 Lanczos 编码麻烦;归一化/符号是坑
2 傅里叶变换到动量空间 解析,可算 $N\to\infty$ 只对二次型有效
3 对角化 $T$ 概念最直接,一行 eig $T$ 严重简并
4 先对角化 $H$ 再算 $T$ 最省力($\langle\psi\lvert T\rvert\psi\rangle$ 几乎免费) 简并时要再对角化
5 对角化 $HT$ 一步得到 $Ee^{-iK}$ 非厄米

“对自旋体系傅里叶变换不起作用”是本页最重要的一问,答案是两层:表象层面 $S^\pm$ 不是正则算符;更准确地说——“能不能傅里叶变换”与”体系是不是自旋”无关,而与”哈密顿量是不是二次型”有关。一维 XX 链($\Delta=0$)能 JW 成自由费米子、就能傅里叶变换;XXZ 链($\Delta\ne0$)JW 后留下四费米子项,不行。这正是 TFIM 之所以”最简单可严格求解”的原因——也是下一节的伏笔。

惩罚项技巧:不构造动量基,而是把约束变成惩罚——对 $\tilde H(k)=H-\alpha e^{-ik}T$ 取实部最负的本征值。相位匹配的态实部被压到 $\omega-\alpha$(最负),不匹配的态实部更大;从 $\lambda+\alpha$ 读出能量。$N=6$ 海森堡环 $\alpha=50$ 时与动量分块逐条一致($10^{-6}$)。

不要猜 $\alpha$,要扫描($\alpha\gtrsim$ 谱宽,量级 $10$–$100$):看”实部最小的本征值 $+\alpha$”什么时候稳定。也不要忘了最后的残差检查——惩罚项给出的态一般不是 $H$ 的本征矢,要扔到残差大的”人造”态。这个技巧没有”总数守恒”型的自检,残差是唯一的保护。

主线二:怎么知道贴对了——横场 Ising 严格解基准

为什么需要一台”标准砝码”

前三节造了一台复杂的机器(轨道、Check 表、投影、归一化),但机器本身会骗你(厄米性盲区已经演示过)。怎么确定动量标签贴对了?需要一个有解析答案的模型当标准砝码——算出来的每个能级都能逐条对上,任何实现错误都会暴露。

横场 Ising 模型(TFIM)是完美的选择,它同时满足三条:严格可解、有量子相变、可以在 $N=4$ 上完全验证:

  • $g=0$:基态 $\lvert\uparrow\cdots\uparrow\rangle$ 或 $\lvert\downarrow\cdots\downarrow\rangle$(铁磁,二重简并,长程序);
  • $g\to\infty$:基态 $\lvert\rightarrow\cdots\rightarrow\rangle$(顺磁,$\sigma^x$ 极化);
  • $g_c=1$:量子相变点,能隙在 $k=0$ 处闭合。

“$g_c=1$”就是”能隙在 $k=0$ 处闭合”——这是量子相变最常见的特征。$g<1$ 时所有 $\epsilon_k>0$;$g>1$ 时也严格为正但最小位置移到 $k=\pi$。注意 $g$ 是无量纲的(相对于 $J$),文献里 $H=-J\sum\sigma^z\sigma^z-h\sum\sigma^x$ 的临界点是 $h_c=J$,两套约定只差一个 $1/J$,混用会得到”$g_c=J$”之类的怪结论。

严格解的四步:JW → Fourier → Bogoliubov → 单粒子谱

Step 1:Jordan–Wigner。自旋 1/2 与无自旋费米子之间的映射(”非常强大”):

本页最需要理解的一点:边界条件从哪来。 环上最后一条键 $i=N\to1$ 在 JW 后多出一个因子 $-P$,其中 $P=\prod_i\sigma^x_i=e^{i\pi M}$($M=\sum_iC_i^\dagger C_i$ 是费米子数)。于是:

扇区 $M$ $P=(-1)^M$ 边界条件 动量指标 $n$
I 偶 $+1$ APBC(反周期) 半整数
II 奇 $-1$ PBC(周期) 整数

注意本讲幻灯片把 $\sigma^z$ 与 $\sigma^x$ 的角色换了($\sigma^z$ 带弦、$\sigma^x$ 是数算符)——这是它自己的约定,让横场对角。读第 16–18 页必须用这个约定,套用自己习惯的约定会全符号反。

Step 2:傅里叶。$C_k=\frac1{\sqrt N}\sum_jC_je^{-ikj}$,$k=2\pi n/N$。按上表选 $n$(整数或半整数),哈密顿量写成

配对项 $i\sin k(\cdots)$ 的存在是”必须做 Bogoliubov 变换”的原因:$k$ 与 $-k$ 成对产生,粒子数不守恒。“$n$ 是半整数”不是笔误——$N=4$ 时 APBC 的动量是 $\{k_{-1.5},k_{-0.5},k_{0.5},k_{1.5}\}$,PBC 的是 $\{k_{-2},k_{-1},k_0,k_1,k_2\}$。

Step 3:Bogoliubov。引入准粒子 $C_k=u_k\gamma_k+iv_k\gamma_{-k}^\dagger$($u_k^2+v_k^2=1$,$u_{-k}=u_k$,$v_{-k}=-v_k$),非对角项消去条件给出 $\tan\theta_k=\frac{\sin k}{g-\cos k}$。

Step 4:单粒子谱。最终

横场 Ising 模型的单粒子谱与量子临界点

读图:$g=1$(红)在 $k=0$ 处为零(能隙闭合);$g=0.5$(蓝)与 $g=2$(绿)都严格为正,但最小位置不同($g<1$ 在 $k="0$,$g">1$ 在 $k=\pi$)。右图 $\min_k\epsilon_k$ 精确地在 $g_c=1$ 处穿过零。

两个代码层面的坑:$\epsilon_k$ 的因子是 $2J$ 不是 $J$;tan 分母可能为零($g=1,k=0$),要用 np.arctan2(sin k, g - cos k) 而不是 np.arctan(sin k/(g-cos k))。

多体谱:宇称扇区与四张表格

现在 $H$ 是自由准粒子,所以本征值是 $E_{\{n_k\}}=\sum_k\epsilon_kn_k-\epsilon_{\rm sum}$(每个动量模式最多一个准粒子)。但哪些 $k$ 可以被占据受宇称 $P$ 的限制:$P=+1$ 扇区用 APBC 网格、允许偶数个占据;$P=-1$ 扇区用 PBC 网格。

$N=4$ 的四张表格(每个 8 个能级,与 ED 逐条一致):

$g$ $P$ 网格 $\epsilon_{\rm sum}$ 最低三个能级(构造值 = ED 值)
2 $+1$ APBC($n=\pm0.5,\pm1.5$) $8.54312$ $-8.54312,\ -2.64861,\ 0$
2 $-1$ PBC($n=0,\pm1,\pm2$) $8.47214$ $-6.47214,\ -4,\ -4$
0.5 $+1$ APBC $4.27156$ $-4.27156,\ -1.32431,\ 0$
0.5 $-1$ PBC $4.23607$ $-4.23607,\ -1,\ -1$

N=4 TFIM 的宇称分扇区能谱:JW→Bogoliubov 精确解与 ED 逐条重合

读图:每个宇称扇区有两组点——ED(实心圆)与精确解(十字),四张表格逐条重合。$g=2$(左)$P=+1$ 最低(全局基态在 $P=+1$);$g=0.5$(右)两个扇区最低态几乎简并(差 $0.0355$)——$g$ 接近临界点时”指数小劈裂”的数值体现($g^N=0.0625$,同量级)。

四张表格里最容易困惑的一处:为什么 $g=2,P=-1$ 的第一行是”放一个 $k=0$ 准粒子”($-6.47214$),而 $g=0.5,P=-1$ 的第一行是”全空”($-4.23607$)?答案在参照系:$P=-1$ 扇区对应的有效二次型(PBC 网格)有自己的 Bogoliubov 真空,真空本身就在 $P=-1$ 扇区里(这正是”PBC ↔ M 奇”自洽条件的含义)。$g=2$ 时真空(0 个占据,偶)属于 $P=+1$,所以 $P=-1$ 的最低态只能”放一个准粒子”。两种标法的能量值都是对的(已用 ED 验证),只是叙述的参照系不同。

数值上这对应一个硬规则:APBC($P=+1$)允许偶数个准粒子占据;PBC($P=-1$)的占据数宇称在 $g=1$ 处翻转——因为 $k=0$ 的 Bogoliubov 角从 $\theta=0$($g>1$)跳到 $\theta=\pi$($g<1$)。别把这个细节写死成”奇/偶”,它在临界点会背叛你。

g ↔ 1/g 对偶:一台免费的 bug 检测器

$g=0.5$ 的 $\epsilon_{\rm sum}$ 与 $g=2$ 的精确成 2 倍关系(两组都是:$4.27156\times2=8.54312$,$4.23607\times2=8.47214$)。这不是巧合——$\sqrt{1+g^2-2g\cos k}$ 在 $g\to1/g$ 下只差一个整体因子,而 $g=2$ 与 $g=0.5$ 互为倒数。

这是一台免费的 bug 检测器:如果你在 $N=4$ 上算出的两个 $g$ 不成 2 倍关系,那一定有 bug。注意对偶只在 $g$ 与 $1/g$ 之间成立,且需要相同的边界条件/宇称扇区。

主线三:为什么值得算准 E(k)——拓扑物态

前 22 页把机器建好、并用严格解标定。第 23–31 页告诉你这套机器现代真正被用来做什么:拓扑物态。

从能带到陈数:2016 年诺贝尔奖

“for theoretical discoveries of topological phase transitions and topological phases of matter”。Thouless(TKNN 公式:霍尔电导的量子化由陈数决定)、Haldane(无朗道能级的量子霍尔效应模型)、Kosterlitz(KT 相变)。

三人的共同点:相变/相的分类不靠对称性破缺,而靠拓扑。朗道范式(相变 = 对称性破缺、序参量非零)在这里失效:拓扑相变没有局域序参量,相的区别在于整体拓扑不变量(陈数、缠绕数)。最著名的例子是量子霍尔效应:$\sigma_{xy}=\nu e^2/h$ 的 $\nu$ 就是 TKNN 陈数,对杂质、无序完全免疫——这就是量子霍尔效应精度极高的原因(现在用于定义电阻标准)。

Haldane 模型的贡献(PRL 61, 2015 (1988)):一个零磁场下就出现量子霍尔效应的格点模型。机制不是朗道量子化,而是能带的拓扑。“无朗道能级”的关键:模型没有净磁场(整个元胞的净通量为零),但有规范场(次近邻跳跃带相位 $t_2e^{i\phi}$)。相位只在”绕一圈”时显现——这正是拓扑现象的特征。

平带 + 相互作用 = 分数 Chern 绝缘体

从”整数”到”分数”:Haldane 的 $\nu=\pm1$ 是整数量子霍尔效应,由单粒子能带的拓扑决定,不需要相互作用。而 $\nu=1/3,2/5,1/5,\ldots$ 是分数量子霍尔效应(FQHE),必须由相互作用产生——单粒子能带的一个陈数只能给出整数 $\nu$。

核心等式(2011 年三篇 PRL 同时提出):

非平庸的拓扑指标 + 近平带 = 朗道能级

真实 FQHE 发生在朗道能级上(动能被冻结,相互作用主导)。FCI 的构想:既然”动能冻结”是关键,能否用平的能带来模拟它?——可以:格点模型的平带(带宽 $W\ll U$)物理上等价于一个朗道能级,而且可能在零磁场、较高温度下实现。

具体的平带模型(Sun–Gu–Katsura–DasSarma, PRL 106, 236803):方格格子、两个子晶格 $A/B$、三个跳跃项($t=1$,$t’_1=-t’_2=\frac1{2+\sqrt2}$,$t’’=\frac1{2+2\sqrt2}$)。动量空间是 $2\times2$ 矩阵:

其中 $d_x=4t\cos\phi\cos\frac{k_x}{2}\cos\frac{k_y}{2}$,$d_y=4t\sin\phi\sin\frac{k_x}{2}\sin\frac{k_y}{2}$,$d_z=(t’_1-t’_2)(\cos k_x-\cos k_y)$。“平带”意味着 $E_-$ 几乎与 $\mathbf k$ 无关——需要 $d_0$ 与 $\lvert\mathbf d\rvert$ 的依赖几乎相消,$t’’$ 就是为此精确调节的。

SGKDS 平带模型:最低带几乎平坦,陈数 C=-1

读图:左图为最低带 $E_-(\mathbf k)$ 的三维曲面——几乎是一个平面(带宽 $W$ 很小)。右图为最低带能量分布。

陈数:$C=\frac1{4\pi}\int_{BZ}d^2k\ \hat{\mathbf d}\cdot(\partial_x\hat{\mathbf d}\times\partial_y\hat{\mathbf d})$ 是 $\hat{\mathbf d}:\ T^2\to S^2$ 的缠绕数,必须为整数。$\phi\ne0$ 是必要的:$\phi=0$ 时 $\mathbf d$ 只在 $xz$ 平面、不可能缠绕球面,且两条能带在 $(\pi,\pi)$ 处狄拉克点相交($\lvert\mathbf d\rvert=0$),陈数无定义。数值验证:$\phi=1$ 时 $C=-1$(精确)。

数值计算的坑:本模型含 $\cos(k_x/2)$ 这样的半角项(子晶格相差半个元胞),$\mathbf d$ 在 $k_x\to k_x+2\pi$ 下反周期。直接在朴素 BZ 网格上做 Wilson 环会得到趋零的错误结果;正确做法是把 B 分量乘上 $e^{i(k_x+k_y)/2}$ 做周期规范变换再算陈数。把半角写成整数角 $k_x$ 会得到完全错误的能带。 这个”反周期性”与 TFIM 里”半整数动量”是同一个物理的两个版本——子晶格/费米子绕一圈带回一个 $-1$。

多体陈数:ED 的现代用武之地

加上分数填充与相互作用($H=-H_0+U\sum n_in_j+V\sum n_in_j$),ED 的输出是”能量谱”图 $E_0(k_x,k_y)$(基态能量平移到零后按动量扇区画)。FQH 态的两个特征:

特征 图像上的样子 物理
简并基态流形(GSM) 一批几乎在 0 处重合的点 拓扑简并
大能隙 第一批激发态明显高于 0 有限能隙

$U=0$ 时谱”杂乱无章”;$U=1$ 时出现简并基态流形与大能隙。“相互作用开启 FQH 态”表现为”谱从杂乱变成有序”。

多体陈数是决定性的判据(比看能隙强得多):

$\theta_x,\theta_y$ 是边界相位(扭曲边界条件)。单粒子陈数在布里渊区上积分,多体陈数在边界相空间上积分——为什么用边界相位?因为多体陈数的定义需要”绝热循环”,而 $\theta_x,\theta_y$ 天然构成一个环面。这与第 26 页判据”基态流动”是同一件事。

一个看似矛盾的说法:幻灯片说”fractional Chern number”,但多体陈数 $C$ 本身是整数。”分数”指的是”陈数/填充数”这个比值($\sigma_{xy}=\nu e^2/h$ 的 $\nu$ 是分数,对 $1/3$ 填充 $C=1$)。不要把”分数陈数”理解成”$C$ 是分数”。

数值实现(Fukui–Hatsugai–Suzuki):只算相邻 $\theta$ 点的重叠积分的 Wilson 环相位,不需要求导。FQH 相的”累积 Berry 相位”曲线线性上升(总相位 $2\pi C$),FL 相大范围波动(非普适)——斜率的整数化 = 拓扑量子化。

更高陈数(Yang–Gu–Sun–Das Sarma, PRB 86, 241112(R) (2012),第一作者是本课程授课教师):$C=2$ 的平带对应 $1/3$ 玻色子 FQHE。为什么有意义:不同陈数给出不同的 FQH 态、更丰富的拓扑激发(非阿贝尔统计等)。三幅数据图的关键是 (e)能隙标度——把能隙对 $1/N_s$ 作图外推,区分”真能隙”与”有限尺寸假象”,这是 ED 研究里必须做的一步。

2023:理论与实验的闭环

第 25 页的三篇理论论文发表于 2011 年。12 年后,实验终于在摩尔超晶格中观测到分数 Chern 绝缘体的信号:

论文 体系 测量 结论
Cai et al., Nature 622, 63 (2023) 扭转 MoTe$_2$ 输运 分数化的霍尔电导、零磁场下 FQAH 信号
Zeng et al., Nature 622, 69 (2023) 摩尔 MoTe$_2$ 热力学 分数 Chern 绝缘体的热力学证据
Han et al., Science 384 (2024) 菱面体石墨烯 输运 大量子反常霍尔效应,$\hbar/5e^2$ 量子化

“零磁场”为什么重要:传统 FQHE 需要 $10$–$30$ T、$\sim10$ mK、高纯异质结;FQAH/FCI 在 $0$ T、数十 mK 到几 K、二维材料/摩尔超晶格上实现,可集成做器件。

这三篇实验论文的理论解释全部依赖 ED:构造模型 → ED 求基态 → 算多体陈数 → 检查简并/能隙/基态流动 → 与实验对照。本讲那套”对称性 + 动量分块”的机器,在 2023 年的实验论文背后仍然是核心工具。 这就是”给本征值贴标签”的终极回报——贴对了标签的 $E(k)$,是别人实验数据的理论对接口。

作业要点与评分

作业(Lecture04_Homework):$J_1$–$J_2$ XXZ 环的对称性、动量分块与 $E(k)$,与第 5–10 页一一对应。

评分(100 分):哈密顿量与对称性 15、$U(1)$ 与动量扇区 20、动量分块哈密顿量 25(最高)、$E(k)$ 与物理 20、必做校检 20。最高分给了第 9 页的核心公式,20 分给了”验证”——说明本课程最看重的是”验证”而不是”算出结果”,与用严格解标定机器的精神一致。

四条必做校检(先做 $\lVert\hat T^N-\hat{\mathbb{1}}\rVert$——它是唯一不需要构造 $H$ 就能做的,抓住”$T$ 定义错”这类最根本错误):

校检 在查什么
$N=4$ 直接对角化 分块或归一化错误
$\lVert\hat T^N-\hat{\mathbb{1}}\rVert$ rot 写错、不是循环移位
$H_k$ 的厄米性 相位/归一化一致
$\sum_k\dim_k=\dim$ 漏态/重态

参考实现的关键数字(作业里应当逐条核对):$\dim=12870$、$n_{\rm rep}=810$、各 $k$ 维度平均 $804.375$;$E_0(J_2=0)=-7.142296360617$、$E_0(\pi)-E_0(0)=0.270189682250$;$E_0(J_2=0.5)=-6.0=-3N/8$ 二重简并;二聚体态 $\langle D_0\lvert D_1\rangle=7.8125\times10^{-3}$、$\langle T\rangle$ 对 $\lvert D_0\rangle$ 是 $0.00781250$(不是相位)、对对称组合是 $\pm1.00000000$。

最后一个漂亮点:$J_2=0$ 时 $\Delta_s$(自旋能隙)与 $E_1-E_0$ 相等(第一激发是 $SU(2)$ 三重态);$J_2=0.5$ 时 $E_1-E_0=0$(MG 简并)但 $\Delta_s\ne0$。“能隙”的定义必须明确是”能量差”还是”自旋能隙”。

校检清单

# 校检什么 期望 实测
1 $\dim(S^z_{tot}=0,\ N=16)$ $12870$ $12870$
2 代表态数 / 轨道长度分布 810 / $\{16:800,8:8,4:1,2:1\}$ 一致
3 $\sum_k\dim_k=\dim$ $12870$ $12870$
4 $H_k$ 厄米 0 $\le2\times10^{-15}$
5 动量块并集 = 全空间 ED($N=6$) 逐条 $3\times10^{-15}$
6 $E_0(k=0),\ E_0(\pi)$($J_2=0$) $-7.1423,\ -6.8721$ 一致
7 $E_0(k=0)=E_0(\pi)=-6.0$($J_2=0.5$) MG 简并 一致
8 TFIM 四组多体谱 vs ED 逐条 $32/32$
9 $\epsilon_k$ 最小值的闭合点 $g=1,\ k=0$ 一致
10 $g\leftrightarrow1/g$ 对偶($N=4$) 能量差 2 倍 一致
11 惩罚项 vs 动量分块($\alpha=50$) 逐条 $\le10^{-6}$
12 SGKDS 平带陈数($\phi\ne0$) $\lvert C\rvert=1$ $-1$(精确)

附:复现用的代码工具箱

本讲所有图都可以用下面这个工具箱复现(只需 numpy + scipy)。放到 ed4.py:

"""ED4 toolbox: spin-ring momentum blocks + TFIM exact.

Conventions (Lecture 04):
bit j = site j, 1 = spin up; T|s> = |rot(s,+1)> (cyclic shift)
P_k = (1/N) sum_j e^{+i 2pi k j / N} T^j (NOTE the + sign)
<r'_k|H|r_k> = sqrt(R_r' R_r)/N * sum_j e^{+i2pi kj/N} <T^{-j} r'|H|r>
"""
import numpy as np
import scipy.sparse as sp
from scipy.sparse.linalg import eigsh


def popcount(x):
return bin(int(x)).count('1')


def rot(s, N, m=1):
"""Cyclic shift: site j moves to (j+m) mod N. Must wrap, not s>>1."""
t = 0
for j in range(N):
if (s >> j) & 1:
t |= 1 << ((j + m) % N)
return t


def xxz_ring_matrix(N, J1, J2, Delta, states=None):
"""Sparse J1-J2 XXZ ring (bit basis, 1 = up)."""
if states is None:
states = list(range(1 << N))
idx = {s: i for i, s in enumerate(states)}
D = len(states)
rows, cols, vals = [], [], []
for i, s in enumerate(states):
e = 0.0
for (J, d) in ((J1, 1), (J2, 2)):
for j in range(N):
b1 = (s >> j) & 1
b2 = (s >> ((j + d) % N)) & 1
e += J * Delta * (b1 - 0.5) * (b2 - 0.5)
rows.append(i); cols.append(i); vals.append(e)
for (J, d) in ((J1, 1), (J2, 2)):
for j in range(N):
k = (j + d) % N
if ((s >> j) & 1) != ((s >> k) & 1):
t = s ^ (1 << j) ^ (1 << k)
if t in idx:
rows.append(idx[t]); cols.append(i); vals.append(J / 2)
return sp.csr_matrix((vals, (rows, cols)), shape=(D, D))


def orbit_data(states, N):
"""rep[s] = min integer in orbit, period[s] = orbit length, reps sorted."""
period = {s: len({rot(s, N, m) for m in range(N)}) for s in states}
rep = {s: min(rot(s, N, m) for m in range(N)) for s in states}
reps = sorted({rep[s] for s in states})
return rep, period, reps


def momentum_blocks(N, J1, J2, Delta, states=None, Sztot=None):
"""Return (Hk_dict, meta) with Hk[k] the n_rep x n_rep momentum block."""
if states is None:
states = ([s for s in range(1 << N) if popcount(s) == Sztot]
if Sztot is not None else list(range(1 << N)))
idx = {s: i for i, s in enumerate(states)}
D = len(states)
H = xxz_ring_matrix(N, J1, J2, Delta, states)
rep, period, reps = orbit_data(states, N)
B = np.zeros((D, len(reps)))
for a, r in enumerate(reps):
B[idx[r], a] = 1.0
Y = H @ B # (D, n_rep) -- H applied ONCE
A = np.array([[idx[rot(r, N, -j)] for j in range(N)] for r in reps], dtype=int)
R = np.array([period[r] for r in reps], float)
Hk = {}
for k in range(N):
keep = [a for a in range(len(reps)) if (k * period[reps[a]]) % N == 0]
if not keep:
Hk[k] = np.zeros((0, 0), complex); continue
YA = Y[A[keep]] # (n_keep, N, n_rep)
ph = np.exp(2j * np.pi * k * np.arange(N) / N)
Z = np.tensordot(YA, ph, axes=(1, 0))[:, keep]
M = np.sqrt(np.outer(R[keep], R[keep])) / N * Z
Hk[k] = 0.5 * (M + M.conj().T) # project to Hermitian
meta = dict(D=D, n_rep=len(reps), R=R, reps=reps, period=period,
dims=[Hk[k].shape[0] for k in range(N)])
return Hk, meta


def ek_from_blocks(Hk, klist, nev=1):
"""Lowest `nev` eigenvalues of each momentum block."""
out = {}
for k in klist:
M = Hk[k]
if M.shape[0] == 0:
out[k] = np.array([]); continue
if M.shape[0] <= nev * 4:
w = np.linalg.eigvalsh(M)
else:
w, _ = eigsh(M, k=nev, which='SA')
out[k] = np.sort(np.real(w))[:nev]
return out


# ---------------- TFIM exact solution H = -sum_i (g sigma^x + sigma^z sigma^z) ----------------
def tfim_sp(N, g):
"""Single-particle spectrum. P=-1 (M odd) -> PBC, n integer;
P=+1 (M even) -> APBC, n half-integer. Returns dict sector -> (ks, eps, eps_sum)."""
out = {}
for label, half in (("P=-1", False), ("P=+1", True)):
ks = 2 * np.pi * (np.arange(N) + (0.5 if half else 0)) / N
eps = 2.0 * np.sqrt(1 + g * g - 2 * g * np.cos(ks))
out[label] = (ks, eps, 0.5 * eps.sum())
return out


def tfim_manybody(N, g, sector):
"""Enumerate the free-fermion many-body spectrum in a parity sector.
Occupancy parity rule: APBC (P=+1) -> even gamma-count; PBC (P=-1) ->
odd count for g>1, even count for g<1 (the k=0 Bogoliubov branch flips at g=1)."""
ks, eps, eps_sum = tfim_sp(N, g)[sector]
even = (sector == "P=+1") or (sector == "P=-1" and g < 1.0)
E = []
for mask in range(1 << N):
M = popcount(mask)
if (M % 2 == 0) != even:
continue
idx = np.where(np.array([(mask >> i) & 1 for i in range(N)]))[0]
E.append(np.sum(eps[idx]) - eps_sum)
return np.sort(np.array(E))


def tfim_matrix(N, g):
"""Full 2^N x 2^N TFIM matrix (ring) and parity P = prod sigma^x."""
D = 1 << N
H = np.zeros((D, D))
for i in range(D):
e = 0.0
for j in range(N):
b1 = (i >> j) & 1
b2 = (i >> ((j + 1) % N)) & 1
e -= (2 * b1 - 1) * (2 * b2 - 1)
H[i, i] = e
for j in range(N):
H[i, i ^ (1 << j)] += -g
P = np.zeros((D, D))
for i in range(D):
P[i, D - 1 - i] = 1.0 # bitwise NOT = flip all spins
return H, P


def tfim_ed_by_parity(N, g):
"""ED spectrum split by parity P=+-1."""
H, P = tfim_matrix(N, g)
w, V = np.linalg.eigh(H)
pvals = np.diag(V.conj().T @ P @ V).real # must be +-1 (use matmul, not einsum!)
out = {"P=+1": [], "P=-1": []}
for e, p in zip(w, pvals):
out["P=+1" if p > 0 else "P=-1"].append(e.real)
for lab in out:
out[lab] = np.sort(np.array(out[lab]))
return out

注:动量分块的核心是一次 $H$ 作用($Y=HB$)再加一次 tensordot($\sum_je^{i2\pi kj/N}Y[A[a,j],\cdot]$),严格对应第 9 页公式。tfim_manybody 里的宇称规则见”多体谱”一节:APBC($P=+1$)允许偶数个准粒子占据;PBC($P=-1$)的占据数宇称在 $g=1$ 处翻转($k=0$ 的 Bogoliubov 角从 $\theta=0$ 跳到 $\theta=\pi$)。用 np.diag(V^T P V) 而不是 np.einsum('in,nm,im->i', ...) 取宇称(后者对实正交 $V$ 会算错——这是个真实踩过的坑)。

延伸阅读与作业

  • 讲义:第四讲幻灯片(33 页)与配套逐页中文讲义 Lecture04_Notes.pdf。
  • 作业:Lecture04_Homework.md——$J_1$–$J_2$ XXZ 环的对称性、动量分块与 $E(k)$,100 分含必做校检。
  • 严格解:S. Sachdev, Quantum Phase Transitions(第 4.2 章,TFIM 标准参考);P. Jordan & E. Wigner, Z. Phys. 47, 631 (1928);Bogoliubov (1947)。
  • 拓扑:Thouless, Kohmoto, Nightingale, den Nijs (TKNN), PRL 49, 405 (1982);Haldane, PRL 61, 2015 (1988);Sun, Gu, Katsura, Das Sarma, PRL 106, 236803 (2011);Sheng, Gu, Sun, Sheng, Nat. Commun. 2, 389 (2011);Yang, Gu, Sun, Das Sarma, PRB 86, 241112(R) (2012)。
  • 实验:Cai et al., Nature 622, 63 (2023);Zeng et al., Nature 622, 69 (2023);Han et al., Science 384, 6696 (2024)。