---
title: "自旋链为什么会撑爆计算机，它的基态却不会"
description: "每多一个自旋，量子态需要的振幅就翻一倍。基态却只要几千字节，因为它跨过任何一刀的纠缠都很少。"
canonical_url: "https://sandboxphysics.com/zh/stories/tensor-networks/many-spins-many-amplitudes/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/tensor-networks/many-spins-many-amplitudes/"
last_modified: "2026-10-29"
---

[张量网络 · 边学边做实验](https://sandboxphysics.com/zh/stories/tensor-networks/)

L1 · 第 1 章

# 自旋链为什么会撑爆计算机，它的基态却不会

一条自旋 1/2 链，每种“上、下”排列都要一个振幅，振幅总数是 2 的链长次方。每加一个自旋，这张表就翻一倍，几十个自旋之内就超出任何计算机的内存。局域相互作用链的基态能逃过这个数，是因为链的左右两半之间纠缠很少。大多数别的态做不到。

Sandbox Physics · 2026-10-29

这一章

[查看八章课程](https://sandboxphysics.com/zh/stories/tensor-networks/)

开始前

单个自旋的量子力学：上态、下态、叠加和 Pauli 矩阵；2 的幂和对数。

## 每多一个自旋，表就翻一倍

一排自旋，每个都可以沿选定的轴朝上或朝下。这排自旋的量子态给每种“上下排列”配一个复振幅，振幅模的平方就是测到这种排列的概率。两个自旋有 4 种排列，三个有 8 种，以后每多一个就翻一倍。

一个双精度复数占 16 字节。20 个自旋约需 1700 万字节，笔记本电脑装得下；32 个自旋约需 690 亿字节；40 个自旋约需 18 万亿字节。一百个自旋的一般量子态，没有哪台机器存得下。

$$
|\psi\rangle=\sum_{s_1,\dots,s_L\in\{\uparrow,\downarrow\}}\psi_{s_1s_2\cdots s_L}\,|s_1s_2\cdots s_L\rangle,\qquad \#\text{amplitudes}=2^{L}
$$

## 这门课用到的两条链

第一条是横场 Ising 链。相邻自旋想沿同一个轴对齐，垂直方向的横场则想把每个自旋扳过去。耦合常数取作能量单位。横场小于耦合时链有序；大于耦合时，自旋顺着横场排，最低激发要付出一个能隙；两者相等时能隙降到零，这就是临界点。

第二条是自旋 1/2 的 Heisenberg 反铁磁链，相邻自旋在各个方向上都倾向于反向。两条链都取开放边界，首尾两个自旋各只有一个邻居。选这两个模型，是因为它们都有精确解：Ising 链可以化成自由费米子，Heisenberg 链有 Bethe 拟设。

$$
H_{\rm Ising}=-J\sum_{j=1}^{L-1}\sigma^x_j\sigma^x_{j+1}-h\sum_{j=1}^{L}\sigma^z_j,\qquad H_{\rm Heis}=J\sum_{j=1}^{L-1}\mathbf S_j\cdot\mathbf S_{j+1}
$$

完整例题

## 算一算：32 个自旋的基态要多少内存

在“上、下”基里，上面两个哈密顿量的矩阵元都是实数，所以基态可以只用实振幅，每个 8 字节。即便如此，32 个自旋的完整振幅表仍要约 340 亿字节。

DMRG 实验存的是矩阵乘积态，第三章会讲怎样搭出它。默认设置下，相邻两个自旋之间最多保留 16 个态，靠近两端的地方更少。把算完后链上各个矩阵的元素数加起来，一共 11048 个实数，约 88 千字节。只用这么点存储，临界 Ising 链的能量与自由费米子精确值之差，不到耦合常数的百亿分之几。

省下来的不是格式的功劳。同样的格式拿去存一个同样长的随机态，几乎得存满整张表。下一节说明原因。

$$
2^{32}\times8\ \text{bytes}\approx3.4\times10^{10}\ \text{bytes},\qquad N_{\rm MPS}=\sum_{j=1}^{32}2\,\chi_{j-1}\chi_j=11\,048
$$

## 基态特别在哪里

在相邻两个自旋之间把链切开。第二章会定义一个量，叫纠缠熵，用来衡量两边互相牵连得多紧。如果态能写成“左态乘右态”，它就是零。12 个自旋的链从正中切开，纠缠熵最大是 6 倍的 2 的自然对数，约 4.16。

压缩实验里的基态都远低于这个上限。临界 Ising 链中间切口的纠缠熵是 0.40，横场为 2.5 的有能隙链只有 0.06，而一个 12 自旋的随机态有 3.66。Schollwöck 把这归结为面积律：在一维，有能隙基态的纠缠熵不随链长增长；随机态则不同，它的纠缠熵是广延量，随区块大小成正比增长。

Verstraete 和 Cirac 把这一点变成了关于误差的结论。他们用区块的纠缠熵，给出给定大小的矩阵乘积态能把一个态近似到什么程度，并据此说明一维链的基态能被如实地表示。压缩实验把对比摆在眼前：临界基态在 4096 个数里只留 296 个，误差平方约百万分之六；随机态留下 2728 个数，仍然丢掉约一半的模方。

$$
S_{\rm max}=\ln 2^{L/2}=\tfrac{L}{2}\ln2\approx4.16\quad(L=12)
$$

带着问题动手

## 先预测，再改变，最后解释

1. 打开压缩实验，选临界链。先预测：要存多少个数，误差平方才会降到百万分之一以下？
2. 换成随机态，把键维数拉到最大。
3. 解释为什么随机态的误差仍然很大，而临界基态只用几百个数就够了。

[剪断自旋链的键，看误差怎样变化](https://sandboxphysics.com/zh/labs/entanglement-compression/) [用 DMRG 来回扫描，逼近基态能量](https://sandboxphysics.com/zh/labs/dmrg-ground-state-sweeps/)

这些实验模拟开放边界的自旋 1/2 链，能量以耦合常数为单位，时间以约化普朗克常数除以耦合常数为单位。每个实验在模型说明里写明模型和适用范围，并可导出读数背后的数据。

## 试着自己解释

### 1. 20 个自旋的一般复数态，用双精度存需要多少字节？40 个自旋呢？

展开答案与解释

2 的 20 次方是 1048576 个振幅，每个 16 字节，约 1680 万字节。40 个自旋约有 1.1 万亿个振幅，约 18 万亿字节。

$$
2^{20}\times16=16\,777\,216,\qquad 2^{40}\times16\approx1.8\times10^{13}
$$

### 2. 直积态让每个自旋各有各的态，互不相关。12 个自旋的直积态要多少个数？

展开答案与解释

每个自旋两个，共 24 个。压缩实验在键维数取一时报告的正是 24；这个设置只能描述直积态。

### 3. 随机态中间切口的纠缠熵是 3.66，最大可能值是 4.16。为什么这让它难以压缩？

展开答案与解释

纠缠熵高，说明跨切口的权重摊在许多大小相近的项上。只保留其中几项，态的大部分就丢了，所以要保留几乎所有项，误差才降得下来。

## 可以放在旁边读的来源

1. [U. Schollwöck, The density-matrix renormalization group in the age of matrix product states, Annals of Physics 326, 96 (2011)](https://arxiv.org/abs/1008.3477)

   这一领域的标准综述。第 3 节用面积律解释 DMRG 为什么在一维好用；第 4.1 节用一次次奇异值分解搭出矩阵乘积态，并在式 (58) 给出截断误差的上界；第 6 节把基态搜索写成变分扫描；第 7 节讲时间演化和它的极限。

2. [F. Verstraete and J. I. Cirac, Matrix product states represent ground states faithfully, Physical Review B 73, 094423 (2006)](https://arxiv.org/abs/cond-mat/0505140)

   引理 1 证明：截断到键维数 D 后，与原态距离的平方不超过各切口舍弃 Schmidt 权重之和的两倍；文中进而说明有能隙的基态为什么只需要不大的 D。

[下一章 一次矩阵分解，量出纠缠](https://sandboxphysics.com/zh/stories/tensor-networks/schmidt-decomposition/)
