---
title: "读懂 García-Ripoll 时间演化论文的图 3(a)"
description: "打开 arXiv:cond-mat/0610210v1 的图 3(a)：弄清误差量的是什么，斜率为何是方法阶数的两倍，以及复现能对上哪条曲线。"
canonical_url: "https://sandboxphysics.com/zh/stories/tensor-networks/reading-garcia-ripoll-figure-3/"
language: "zh-CN"
page_type: "story"
alternate_languages:
  en: "https://sandboxphysics.com/stories/tensor-networks/reading-garcia-ripoll-figure-3/"
last_modified: "2026-10-29"
---

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

L4 · 第 8 章

# 读懂 García-Ripoll 时间演化论文的图 3(a)

打开 J. J. García-Ripoll 的论文 Time evolution of matrix product states（arXiv:cond-mat/0610210v1），翻到第 12 页。图 3(a) 在双对数坐标里画出两种 Trotter 方法的误差随时间步长的变化，所用的链小到完全不需要截断。图里的误差取模平方，于是每条曲线上升的斜率是方法阶数的两倍。一个独立的全向量复现与二阶曲线的直线段吻合，差别不超过 0.18 个数量级。印出的四阶曲线在直线段比正文所写的 Forest–Ruth 公式低约 3.7 个数量级，却和论文第 28 号文献里一种优化过的四阶分解对得上。

Sandbox Physics · 2026-10-29

这一章

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

开始前

读过第六、七章，或者熟悉 Trotter 分解和矩阵乘积态；会读双对数图：斜率为 p 的直线，表示该量按 p 次方变化。

## 先找设定，再看图

从第 5 节 Comparison 读起。García-Ripoll 用式 (32) 的自旋链演化同一个初态：所有自旋都指向同一个垂直于 z 轴的方向。式 (32) 由两部分组成：交换项乘一个角度的余弦，沿 z 方向的场乘它的正弦。图 3 取 8 个自旋、角度 0.35、z 方向交换为零（于是这是 XY 模型），总时间为 10。

有两个设定决定了每条曲线怎么读。第一，误差取“算出的波函数减去精确波函数”这个差的模平方，而不是磁化强度或能量之差。第二，矩阵大小是 16，能装下 8 个自旋的任何态：中间切口两边各 4 个自旋、16 种构型。没有任何截断，所以图 3 单独呈现时间步误差和计算机的舍入。

$$
H=\sum_k\Big[\cos\theta\,\big(s^x_ks^x_{k+1}+s^y_ks^y_{k+1}+\Delta\,s^z_ks^z_{k+1}\big)+\sin\theta\,s^z_k\Big],\qquad \varepsilon:=\big\lVert\psi_D(T)-U(T)\psi(0)\big\rVert^2
$$

## 读 (a) 图：坐标轴、曲线和三个区段

两个坐标轴都是对数的。时间步长从 0.002 到 5，误差从 10 的负 20 次方到 1。图例放在 (c) 图旁边。(a) 图里，蓝色代表式 (21) 的对称二阶分解，红色代表式 (22) 的四阶 Forest–Ruth 公式。每种颜色都有两条重叠的曲线：带圆点的标为 DMRG Trotter，不带圆点的标为 MPS Trotter。图例给蓝色标上“步长平方”，给红色标上“步长四次方”。黑色实线是每张图都有的 Arnoldi 和 Lanczos 参考线。蓝红之间还有一条细虚线，图例里没有，先不管它。

每条曲线都分三段。最右边，步长太大，误差饱和在 1 附近。中间是一段直线，也就是方法的幂律。最左边，步长越小误差反而回升。论文把这一段归因于计算机的有限精度：步数越多，舍入误差积累越多，大致与步长的平方成反比。斜率只能在中间那段读。

完整例题

## 先量斜率，再读标签

在步长 0.01 到 0.1 之间量蓝色曲线：它上升了大约四个数量级。标签写的却是步长平方。两者都没错：标签给出方法阶数，图里画的是模平方。若态的误差按步长的 p 次方变化，它的平方就按 2p 次方变化。Vidal 式 (24) 写的也是这条规律：忽略掉的修正正比于步长的 2p 次方，再乘以总时间平方。

独立检验能复现这条曲线。在 8 个自旋的全向量上，依次乘上式 (21) 的精确两格点门，这和论文中不截断的矩阵乘积态计算等价。在 0.01 到 0.1 之间拟合的斜率是 4.0003；另一套 SciPy 程序与之相差不到十亿分之一。这张图在 PDF 里以矢量线条保存，每个画出的点都能直接从文件读出，不必数像素。从步长 0.01 到 2.5，印出的蓝色曲线比复现结果低 0.10 到 0.18 个数量级，约为复现值的 1.36 分之一，斜率相同。

$$
\lVert\delta\psi\rVert\propto\Delta t^{\,p}\ \Rightarrow\ \varepsilon=\lVert\delta\psi\rVert^2\propto\Delta t^{\,2p},\qquad p=2:\ \text{slope }4\ (\text{measured }4.0003)
$$

## 红色曲线用的是哪个四阶公式

用同样的办法跑式 (22)。在步长 0.01、0.02、0.05、0.1 四点上做最小二乘拟合，斜率是 7.998，态误差的阶数是 3.999，正是这个公式该有的四阶。可是在步长 0.11 到 0.5 之间印出的五个点上，红色曲线比这个结果低 3.5 到 3.8 个数量级。二阶曲线出自同一套程序、同一条链、同一个初态和同一种误差量，吻合到 0.18 个数量级以内，可见差距不在设定上。

式 (22) 引了第 8 和第 28 号文献，线索在第 28 号：Omelyan、Mryglod 和 Folk 的论文。他们在 Forest–Ruth 分解里多加一对指数因子，再调系数，让首项误差尽量小。系数列在他们的式 (17)，误差常数约降到原来的四十二分之一。把他们的式 (9) 配上这组系数，让奇数键放在最外层，在同一条链上跑一遍，五个印出的点全都落在 0.17 个数量级以内。García-Ripoll 正文写的是式 (22)，也没说图用了哪种分解，所以这个对应是我们的推断，不是作者的说法。

还有两段没有解决。步长超过 0.5 以后，印出的曲线到步长 2 时升了 7.2 个数量级，式 (22) 只升 3.8，优化分解只升 4.9，原因我们说不清。步长小于 0.08 时，曲线随步长变小反而回升。论文把它归于优化算法的有限精度，并给出最坏估计：步数的平方乘以 10 的负 16 次方。印出的这一段比该上限低 1.3 到 1.7 个数量级。全向量复现没有优化这一步，误差一路降到 10 的负 20 次方以下。

$$
\theta=\frac{1}{2-2^{1/3}}\approx 1.3512,\qquad \frac{\gamma_{\mathrm{FR}}}{\gamma_{\mathrm{EFRL}}}\approx\frac{0.039}{0.00092}\approx 42
$$

## 读下一张误差图时的检查清单

读斜率之前，先弄清误差量的是什么：模、模平方、保真度，还是某个观测量。把键维数和链可能有的最大 Schmidt 秩比一比，看截断是否在起作用。只在曲线成直线的地方读斜率；误差是平方量时，拿它和方法阶数的两倍比较。

接着留意曲线在小步长处从哪里开始上翘，作者把它归因于什么。自己复现一张图时，既要比斜率也要比绝对值。斜率对、高度不对，问题可能出在方法的系数上，这时去翻公式旁边引的文献。还要说清楚哪条曲线对上了、哪条没有。然后打开淬火实验，选“时间步太粗”预设，看同样的时间步误差怎样在舍弃权重仍很小时冒出来。

带着问题动手

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

1. 淬火实验用的是二阶分解。先预测：步长减半时，某固定时刻的最大局域误差会怎样变化？
2. 运行“时间步太粗”预设，再把步长连续减半两次。
3. 实验里的误差是局域磁化强度之差。解释为什么步长每减半一次，它降到四分之一，而图 3(a) 里的模平方降到十六分之一。

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

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

## 试着自己解释

### 1. 两种四阶分解的首项误差常数相差 42 倍。在图 3(a) 里，它们的曲线大约应该相距多远？斜率又该是多少？

展开答案与解释

态误差与常数成正比，图里画的模平方与常数的平方成正比，所以相差约 1800 倍，即 3.2 个数量级。两条曲线的斜率都是阶数的两倍：步长每变一个数量级，误差变八个数量级。在这条链上实测相距 3.7 个数量级，因为 Omelyan 等人的常数是几个嵌套对易子系数的范数，而这条链对这些对易子的权重并不相同。

### 2. 为什么矩阵大小取 16，8 个自旋就不需要截断？

展开答案与解释

任何切口的最大 Schmidt 秩，等于较短一侧的构型数。中间切口每侧 4 个自旋、16 种构型，所以每条连接 16 个态就能精确装下任何态。

### 3. 图 3 能告诉你长时间运行中截断误差怎样增长吗？

展开答案与解释

不能，它在设计上就关掉了截断。论文在图 4 改用 16 个自旋和几种矩阵大小来展示这个效应。

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

1. [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 系数。

2. [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 类积分方法的误差随时间步长的变化。

3. [I. P. Omelyan, I. M. Mryglod and R. Folk, Optimized Forest–Ruth- and Suzuki-like algorithms for integration of motion in many-body systems, Computer Physics Communications 146, 188 (2002)](https://arxiv.org/abs/cond-mat/0110585)

   García-Ripoll 论文的第 28 号文献。在 Forest–Ruth 分解里多加一对指数因子，再调系数让首项误差尽量小。式 (17) 给出系数，误差常数约降到原来的四十二分之一。

[上一章 为什么淬火会甩开所有矩阵乘积态](https://sandboxphysics.com/zh/stories/tensor-networks/entanglement-growth-and-light-cones/)
