---
title: "用两格点门让矩阵乘积态随时间演化"
description: "TEBD 把一个时间步拆成作用在相邻自旋上的门，每作用一个门就截断一次。误差有两个来源：时间步和截断，可以分开测量。"
canonical_url: "https://sandboxphysics.com/zh/stories/tensor-networks/tebd-real-time/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/tensor-networks/tebd-real-time/"
last_modified: "2026-10-29"
---

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

L3 · 第 6 章

# 用两格点门让矩阵乘积态随时间演化

时间演化块消减（TEBD）由 Vidal 在 2004 年提出：把一个小时间步写成一串门的乘积，每个门只作用在相邻两个自旋上。每作用一个门，就用奇异值分解把这一对拆回去，只保留最大的几个 Schmidt 项。时间步误差随步长的幂次减小，随时间增长得很慢；截断误差取决于态里有多少纠缠，真正让模拟走不下去的是它。

Sandbox Physics · 2026-10-29

这一章

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

开始前

读过第三、四章；了解量子力学的时间演化算符，并知道两个不对易矩阵之和的指数，不等于各自指数的乘积。

## 把一个时间步拆成两格点门

Ising 哈密顿量是一些键项之和，每项作用在相邻两个自旋上。给每条键分配它的耦合和一份横场。不共用自旋的键彼此对易，相邻的键却不对易。整个哈密顿量的指数因此并不严格等于各键指数的乘积。步长很短时乘积很接近，剩下的差就是 Trotter 误差。

Vidal 把键分成偶数组和奇数组，同组内的项彼此对易。先让一组走半步，另一组走一整步，再让第一组走半步，这样对称排列可以精确到二阶。淬火实验用的是一种等价的对称排法：先从左到右扫一遍半步门，再从右到左扫一遍。

$$
e^{-i(F+G)\delta}=e^{-iF\delta/2}\,e^{-iG\delta}\,e^{-iF\delta/2}+O(\delta^3),\qquad F=\sum_{b\ \rm even}h_b,\quad G=\sum_{b\ \rm odd}h_b
$$

## 作用一个门，再截断

要在相邻两个自旋上作用一个门，先把它们的两个张量连同两侧的 Schmidt 系数合成一块，乘上 4 乘 4 的门，再用奇异值分解拆开。门会制造纠缠，拆开后的 Schmidt 项可能比原来多。保留最大的那些，直到键维数为止，并记下舍掉的权重。

Vidal 估计，计算量随“链长乘键维数的三次方”增长。键维数于是成了精度的价钱，淬火实验让你故意少给的也正是它。

$$
\Theta=\Lambda^{[b-1]}\Gamma^{[b]}\Lambda^{[b]}\Gamma^{[b+1]}\Lambda^{[b+1]},\qquad \Theta'=U_b\,\Theta\ \xrightarrow{\ \rm SVD\ }\ \text{keep }\chi\text{ largest}
$$

完整例题

## 把时间步误差和截断误差分开

Vidal 给两种误差起了名字。一个门的截断误差，就是舍掉的 Schmidt 权重。p 阶 Trotter 展开另带一份误差，用“一减去与精确态重叠的平方”来量，它与步长的 2p 次方乘总时间的平方成正比。Schollwöck 在第 7.4 节补充说：Trotter 误差随时间只缓慢增长，截断误差才是要命的那个。

实验用自由费米子精确解把两者分开。在 10 个自旋的链上，键维数 64 永远不必截断，只剩时间步在起作用。这时，时刻 3 的局域磁化强度最大误差在步长 0.2、0.1、0.05、0.025 时分别是 0.0051、0.0013、0.00032、0.00008。步长每减半，误差降到四分之一，实测阶数是 2.00。默认步长 0.05 下，时间步误差远低于实验的容差千分之一。在 16 个自旋的链上，可信时间随键维数移动：键维数 16 时是 2.7，32 时是 3.45；在那里关上时间窗的是截断。

$$
\epsilon_{\rm trunc}=\sum_{\alpha>\chi}\big(s^{[b]}_\alpha\big)^2,\qquad \epsilon_{\rm Trotter}\sim\delta^{2p}T^2,\qquad \frac{0.0013}{0.00032}\approx4
$$

## 守恒量是检验，不是证明

精确演化保持能量和自旋翻转宇称不变，模拟若破坏其中任何一个，结果就错了。每个门都保持宇称，实验在所有键维数下都把宇称守到约万亿分之一以内。能量要微妙一些：Trotter 步本身就不严格守恒能量。在可信时间窗内，键维数从 4 到 32，能量漂移都是 0.0020，说明这份漂移来自时间步。一直跑到时刻 5，漂移在键维数 4 时变成 0.24，在 32 时是 0.037，这部分来自截断。

García-Ripoll 比较这类 Trotter 方法和其他积分方法时，量的是整个波函数的误差，而不是某个守恒量。第八章会细读他的一张图。

带着问题动手

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

1. 打开淬火实验，选临界淬火。先预测：步长减半和键维数加倍，哪个能把表示可信时间的虚线推得更远？
2. 两样都试一试，再选“时间步太粗”预设。
3. 借助舍弃权重和局域误差两个读数，解释每种情形下是哪种误差关上了时间窗。

[跟着淬火演化，直到模拟不再可信](https://sandboxphysics.com/zh/labs/tebd-quench-time-window/)

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

## 试着自己解释

### 1. 用二阶 Trotter 步，某固定时刻的局域误差是千分之一。把步长减半，你预期会怎样？代价是什么？

展开答案与解释

只要截断可以忽略，误差降到四分之一，约 0.00025。代价是到达同一时刻要作用的门数翻倍。

### 2. 如果容差是万分之一而不是千分之一，单靠加大键维数，能让默认设置一直可信到时刻 3 吗？

展开答案与解释

不能。在 10 个自旋的检验里，步长 0.05 时单是时间步误差在时刻 3 就有 0.00032，已经超过这个容差，还得把步长缩短。

### 3. 键维数从 16 加倍到 32，可信时间从 2.7 推到 3.45。按 Vidal 的计算量估计，每一步大约要多花多少功夫？

展开答案与解释

计算量随键维数的三次方增长，每步约多花 8 倍，只换来多四分之三个时间单位。第七章解释为什么收获这么小。

$$
\Big(\tfrac{32}{16}\Big)^3=8
$$

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

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. [G. Vidal, Efficient simulation of one-dimensional quantum many-body systems, Physical Review Letters 93, 040502 (2004)](https://arxiv.org/abs/quant-ph/0310089)

   提出时间演化块消减（TEBD）：把哈密顿量拆成两格点门，逐个作用，每作用一次只保留最大的 Schmidt 系数。

3. [J. J. García-Ripoll, Time evolution of matrix product states, New Journal of Physics 8, 305 (2006)](https://arxiv.org/abs/cond-mat/0610210)

   比较矩阵乘积态时间演化的几种做法。图 3 在双对数坐标里画出 Trotter 类积分方法的误差随时间步长的变化。

[上一章 来回扫描求基态，再判断该不该信](https://sandboxphysics.com/zh/stories/tensor-networks/dmrg-variational-sweeps/) [下一章 为什么淬火会甩开所有矩阵乘积态](https://sandboxphysics.com/zh/stories/tensor-networks/entanglement-growth-and-light-cones/)
