跳到主要内容
Sandbox Physics
张量网络 · 边学边做实验

L3 · 第 6 章

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

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

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

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

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

e−i(F+G)δ=e−iFδ/2 e−iGδ e−iFδ/2+O(δ3),F=∑b evenhb,G=∑b oddhbe^{-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 估计,计算量随“链长乘键维数的三次方”增长。键维数于是成了精度的价钱,淬火实验让你故意少给的也正是它。

Θ=Λ[b−1]Γ[b]Λ[b]Γ[b+1]Λ[b+1],Θ′=Ub Θ → SVD  keep χ largest\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;在那里关上时间窗的是截断。

ϵtrunc=∑α>χ(sα[b])2,ϵTrotter∼δ2pT2,0.00130.00032≈4\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. 借助舍弃权重和局域误差两个读数,解释每种情形下是哪种误差关上了时间窗。

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

试着自己解释

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

展开答案与解释

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

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

展开答案与解释

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

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

展开答案与解释

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

(3216)3=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)

    这一领域的标准综述。第 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)

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

  3. J. J. García-Ripoll, Time evolution of matrix product states, New Journal of Physics 8, 305 (2006)

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

反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策