---
title: "一次矩阵分解，量出纠缠"
description: "把振幅排成矩阵，行是左段的构型，列是右段的构型。它的奇异值给出 Schmidt 权重，也就给出了纠缠熵。"
canonical_url: "https://sandboxphysics.com/zh/stories/tensor-networks/schmidt-decomposition/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/tensor-networks/schmidt-decomposition/"
last_modified: "2026-10-29"
---

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

L1 · 第 2 章

# 一次矩阵分解，量出纠缠

把链的振幅排成矩阵：行是左段的构型，列是右段的构型。对这个矩阵做奇异值分解，态就改写成几项“左态乘右态”之和。奇异值的平方叫 Schmidt 权重，加起来等于一；这些权重的熵，就是跨过这一刀的纠缠熵。

Sandbox Physics · 2026-10-29

这一章

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

开始前

读过第一章；了解矩阵、正交归一向量，以及奇异值分解的意思：任何矩阵都能拆成一次旋转、一次沿坐标轴的拉伸、再一次旋转。

## 把一张表折成矩阵

12 个自旋的链，在第 4 个自旋后面切一刀。左段有 16 种构型，右段有 256 种。把每种完整构型的振幅放到“左段构型”那一行、“右段构型”那一列，态就变成一个 16 行 256 列的矩阵，什么信息也没丢。

如果这个矩阵的秩是一，每一行都是同一行的倍数。这时态就是一个左态乘一个右态，也就是直积态，两边互不相干。秩大于一，两边就纠缠在一起：左边测到哪种构型，会影响右边是什么样子。

$$
\Psi_{(s_1\cdots s_\ell),(s_{\ell+1}\cdots s_L)}=\psi_{s_1\cdots s_L},\qquad \Psi\in\mathbb C^{2^{\ell}\times2^{L-\ell}}
$$

## 奇异值变成 Schmidt 权重

奇异值分解把矩阵写成若干个秩一矩阵之和，每一项是一列左向量乘一行右向量，再乘一个非负的奇异值。左向量彼此正交归一，右向量也是。把它们读回成量子态，就是 Schmidt 分解。Schollwöck 综述的第 4.1.1 节讲的就是这一步。

对归一化的态，奇异值的平方加起来等于一，可以当作概率看，这就是 Schmidt 权重。纠缠熵就是这组权重的熵：只有一个权重且等于一时为零；所有权重相等时最大，等于项数的对数。

$$
|\psi\rangle=\sum_{\alpha=1}^{r}s_\alpha\,|a_\alpha\rangle_{\rm L}|b_\alpha\rangle_{\rm R},\qquad \lambda_\alpha=s_\alpha^2,\qquad S=-\sum_{\alpha}\lambda_\alpha\ln\lambda_\alpha\le\ln r
$$

完整例题

## 算两个例子：两个自旋，和一个猫态

Calabrese 和 Cardy 2004 年的论文开头举了一个两自旋的例子：第一个自旋朝上、第二个朝下占一份振幅，反过来占另一份。以第一个自旋为行、第二个为列，这个矩阵只有非对角元。它的奇异值就是两份振幅的大小，Schmidt 权重是它们的平方。两个权重都是二分之一时，熵达到两个自旋所能有的最大值：2 的自然对数。

再看一条所有自旋同向的链，它处在“全部朝一个方向”和“全部朝反方向”的等权叠加上。无论在哪里切，都恰好得到两个二分之一的 Schmidt 权重，所以每一刀的纠缠熵都是 2 的对数，约 0.693。压缩实验的猫态预设取横场 0.3 的 Ising 基态，接近这个图像，它中间切口的纠缠熵是 0.6935。

$$
\cos\theta\,|{\uparrow\downarrow}\rangle+\sin\theta\,|{\downarrow\uparrow}\rangle\ \Rightarrow\ \Psi=\begin{pmatrix}0&\cos\theta\\ \sin\theta&0\end{pmatrix},\quad S=-\cos^2\theta\ln\cos^2\theta-\sin^2\theta\ln\sin^2\theta
$$

## 临界链上的纠缠熵曲线

让切口沿链移动，记下每个位置的纠缠熵。有能隙的链，曲线离开两端不远就变平；临界链则一路向中间升高。Calabrese 和 Cardy 用共形场论推出了开放临界链上这条曲线的形状，即他们的式 (2)，系数是中心荷的六分之一；临界 Ising 链的中心荷是二分之一。

这条曲线可以不做任何近似来检验。Peschel 证明，能化成自由费米子的链（包括 Ising 链这类带配对项的链）里，一段区块的 Schmidt 权重可以直接从关联矩阵算出。用精确基态在链中间一半上拟合，32 个自旋得到的中心荷是 0.524，64、128、256 个自旋依次是 0.512、0.506、0.503，链越长越接近二分之一。DMRG 实验也画出这条曲线：中心荷固定，只拟合常数，和实际算出的纠缠熵并排比较。

$$
S(\ell)=\frac{c}{6}\ln\!\Big[\frac{L}{\pi}\sin\frac{\pi\ell}{L}\Big]+s_0,\qquad c_{\rm Ising}=\tfrac12
$$

带着问题动手

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

1. 在 DMRG 实验里运行临界 Ising 链，看纠缠柱。先预测：哪里最高？朝两端降得有多快？
2. 换成有能隙的 Ising 链。
3. 解释为什么有能隙链的纠缠柱离开两端就变平，而临界链的一路向中间升高。

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

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

## 试着自己解释

### 1. 所有自旋都沿横场方向朝上的态，从中间切开。它的 Schmidt 权重和纠缠熵是多少？

展开答案与解释

这是直积态，矩阵的秩是一。只有一个 Schmidt 权重，等于一，纠缠熵为零。

### 2. 某个切口最多保留 4 个 Schmidt 权重。这一刀最多能承载多少纠缠熵？

展开答案与解释

四个权重相等、各为四分之一时熵最大，等于 4 的自然对数，约 1.39。

$$
S\le\ln4\approx1.386
$$

### 3. 为什么 32 个自旋拟合出的中心荷是 0.524，而不正好是二分之一？

展开答案与解释

这个公式描述的是长链的主导行为。短链会多出随链长衰减的修正，所以链越长，拟合值越靠近二分之一：64 个自旋时是 0.512，256 个时是 0.503。

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

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. [I. Peschel, Calculation of reduced density matrices from correlation functions, Journal of Physics A 36, L205 (2003)](https://arxiv.org/abs/cond-mat/0212631)

   证明自由费米子链上，一段区块的约化密度矩阵可以由两点关联矩阵求出。实验中作为参考的精确纠缠熵就是这样算出来的。

[上一章 自旋链为什么会撑爆计算机，它的基态却不会](https://sandboxphysics.com/zh/stories/tensor-networks/many-spins-many-amplitudes/) [下一章 把波函数变成一串小矩阵](https://sandboxphysics.com/zh/stories/tensor-networks/matrix-product-states/)
