---
title: "来回扫描求基态，再判断该不该信"
description: "DMRG 每次改进相邻两个张量，来回扫描整条链。能量只降不升；它是不是基态，要看能量方差、精确极限和对称性检查。"
canonical_url: "https://sandboxphysics.com/zh/stories/tensor-networks/dmrg-variational-sweeps/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/tensor-networks/dmrg-variational-sweeps/"
last_modified: "2026-10-29"
---

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

L3 · 第 5 章

# 来回扫描求基态，再判断该不该信

DMRG 固定其余张量，只动相邻两个：解一个小本征值问题找出最好的一对，再用截断分解拆回去，然后往前挪一格。走到链尾再走回来，叫一次扫描。每次更新只会让能量下降或不变，所以能量会稳定下来。稳定在哪里，是不是基态，要另找证据：能量方差、和精确极限比较，以及真正基态必须具备的对称性。

Sandbox Physics · 2026-10-29

这一章

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

开始前

读过第三、四章；了解量子力学的变分原理：任何归一化态的能量都不低于基态能；了解对称矩阵的本征值。

## 变分搜索，每次两个格点

任何归一化试探态的能量都不低于基态能。DMRG 在给定键维数的矩阵乘积态里，找能量最低的那个。一次优化所有张量是个困难的非线性问题，所以 DMRG 固定其余部分，只改进相邻的一对张量。

其余张量固定并保持正交归一时，这一对的能量是其元素的二次型。最好的一对就是一个小有效哈密顿量的最低本征矢，几步 Lanczos 迭代就能求出。再用截断奇异值分解把它拆回两个张量，最多保留允许数目的 Schmidt 项，然后窗口往前挪一格。Schollwöck 综述第 6.3 节描述的就是这种迭代搜索。

$$
H_{\rm eff}^{[j,j+1]}\,\Theta=E\,\Theta,\qquad \Theta\approx U\,\mathrm{diag}(s_1,\dots,s_\chi)\,V^{\dagger}
$$

## 三个诊断量，各自看不到什么

第一个诊断量是能量。32 个自旋的临界 Ising 链，每条连接至多 16 个态，与自由费米子精确能量相比，误差在第一次扫描后是 0.035，接着降到 0.0012、百万分之七、十亿分之八，从第五次扫描起稳定在百亿分之二左右。能量稳定，只说明搜索停了，不说明找到的是基态。

第二个是能量方差。精确本征态的方差为零；方差小，就保证在测得的能量附近有一个本征值。Schollwöck 在第 6.4 节推荐用它，因为它不依赖双格点的具体做法。第三个是每次截断舍弃的权重。键维数增大时，这两个量都会变小。同一条链如果每条连接只留 4 个态，能量误差停在千分之一，方差是 0.0038。

$$
\sigma_E^2=\langle H^2\rangle-\langle H\rangle^2,\qquad \exists\,E_n:\ |E_n-\langle H\rangle|\le\sigma_E
$$

完整例题

## 用 Bethe 拟设检验 Heisenberg 链

Karbach、Hu 和 Müller 的式 (13) 给出 Hulthén 求得的无穷长 Heisenberg 反铁磁链基态能：每条键四分之一减去 2 的自然对数，以耦合常数为单位约为负 0.443147。开放链不能直接拿来比，因为两端要多付能量：32 个自旋的链，每条键的能量是负 0.4515。

改为取差。多加 16 个自旋，就多出 16 条体内的键，两端却没变，端点的能量正好消掉。对 16、32、48、64 个自旋分别跑 DMRG，每次的能量方差都在百万分之一左右或更小。每多一条键的能量依次是负 0.442849、负 0.443040、负 0.443092，与 Bethe 值的差从 0.00030 降到 0.00011 再到 0.00006。同一套 DMRG 程序算 16 个自旋的链，和精确对角化只差十亿分之二。

$$
\frac{E(L_2)-E(L_1)}{L_2-L_1}\ \longrightarrow\ \Big(\tfrac14-\ln2\Big)J\approx-0.443147\,J
$$

## 方差极小，态却不对

把横场降到 0.7，进入有序相。这时有两个能量极其接近的态：两种有序排列的偶组合和奇组合。有限长链的精确基态是其中之一，自旋翻转宇称有确定的值。键维数 16 的 DMRG 给出的态方差不到十亿分之二，能量却高了百万分之 5.6，宇称是 0.002，而不是一个确定值。

方差尽了它的本分：它保证了附近有本征值，却说不出是哪一个。两个态几乎简并时，它们的混合方差也很小。对称破缺的态存起来也更省：第二章的猫态已经表明，偶组合或奇组合在每处切口都要多出 2 的对数那么多纠缠。只有对称性检查能把它揪出来。在临界链上，同样的检查读出的宇称是 1.000。

## 读一读它找到的纠缠

最后一次扫描结束后，每处切口的 Schmidt 权重都是现成的。临界 Ising 链的纠缠熵曲线符合 Calabrese–Cardy 给出的开放链形式。用 32 个自旋的 DMRG 结果拟合中心荷，得到 0.523992，与用精确自由费米子曲线拟合的结果相差不到千万分之一。它不等于二分之一，是因为 32 个自旋还太短；第二章已经看到，链越长，精确拟合值越接近二分之一。

$$
c_{\rm DMRG}(L=32)=0.523992,\qquad c_{\rm DMRG}-c_{\rm exact}\approx-9\times10^{-8}
$$

带着问题动手

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

1. 打开 DMRG 实验，选临界 Ising 链。先预测：能量误差在第几次扫描后不再下降？
2. 换成有序相预设，打开诊断信息。
3. 解释为什么方差极小，能量却仍高于精确值；哪个诊断量暴露了问题？

[用 DMRG 来回扫描，逼近基态能量](https://sandboxphysics.com/zh/labs/dmrg-ground-state-sweeps/)

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

## 试着自己解释

### 1. 临界链第一次扫描后方差是 0.05。离测得能量最近的本征值，最远可能在多远处？

展开答案与解释

在一个标准差之内，即方差的平方根，约 0.22。这个保证很弱；只有方差变小以后，它才真正有用。

$$
\sigma_E=\sqrt{0.05}\approx0.22
$$

### 2. 32 个自旋的开放 Heisenberg 链，把总能量除以 31 条键，为什么得不到 Bethe 拟设值？

展开答案与解释

靠近两端的键和体内的键不一样。除以键数时，端点多出的能量摊到了所有键上，只按链长的倒数减小。取两种链长的差，就能把它消掉。

### 3. 在有序相，单靠加大键维数能把宇称纠正过来吗？

展开答案与解释

不一定。对称破缺的态纠缠更少、能量又几乎一样，扫描可能一直停在那里。Schollwöck 在第 2 节介绍了标准做法：把对称性直接做进张量里，让扫描能到达的每个态都有确定的宇称。

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

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. [P. Calabrese and J. Cardy, Entanglement entropy and quantum field theory, Journal of Statistical Mechanics P06002 (2004)](https://arxiv.org/abs/hep-th/0405152)

   推导一维临界系统的纠缠熵。式 (2) 给出开放链上的纠缠熵曲线，系数是中心荷的六分之一。

3. [M. Karbach, K. Hu and G. Müller, Introduction to the Bethe ansatz II, Computers in Physics 12, 565 (1998)](https://arxiv.org/abs/cond-mat/9809163)

   自旋 1/2 Heisenberg 反铁磁链 Bethe 拟设的入门讲解。式 (13) 给出 Hulthén 求得的无穷长链基态能量：以耦合常数为单位，每条键是四分之一减去 2 的自然对数。

[上一章 剪断弱通道要付出多少误差](https://sandboxphysics.com/zh/stories/tensor-networks/truncation-and-local-errors/) [下一章 用两格点门让矩阵乘积态随时间演化](https://sandboxphysics.com/zh/stories/tensor-networks/tebd-real-time/)
