变分搜索,每次两个格点
任何归一化试探态的能量都不低于基态能。DMRG 在给定键维数的矩阵乘积态里,找能量最低的那个。一次优化所有张量是个困难的非线性问题,所以 DMRG 固定其余部分,只改进相邻的一对张量。
其余张量固定并保持正交归一时,这一对的能量是其元素的二次型。最好的一对就是一个小有效哈密顿量的最低本征矢,几步 Lanczos 迭代就能求出。再用截断奇异值分解把它拆回两个张量,最多保留允许数目的 Schmidt 项,然后窗口往前挪一格。Schollwöck 综述第 6.3 节描述的就是这种迭代搜索。
三个诊断量,各自看不到什么
第一个诊断量是能量。32 个自旋的临界 Ising 链,每条连接至多 16 个态,与自由费米子精确能量相比,误差在第一次扫描后是 0.035,接着降到 0.0012、百万分之七、十亿分之八,从第五次扫描起稳定在百亿分之二左右。能量稳定,只说明搜索停了,不说明找到的是基态。
第二个是能量方差。精确本征态的方差为零;方差小,就保证在测得的能量附近有一个本征值。Schollwöck 在第 6.4 节推荐用它,因为它不依赖双格点的具体做法。第三个是每次截断舍弃的权重。键维数增大时,这两个量都会变小。同一条链如果每条连接只留 4 个态,能量误差停在千分之一,方差是 0.0038。
完整例题
用 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 个自旋的链,和精确对角化只差十亿分之二。
方差极小,态却不对
把横场降到 0.7,进入有序相。这时有两个能量极其接近的态:两种有序排列的偶组合和奇组合。有限长链的精确基态是其中之一,自旋翻转宇称有确定的值。键维数 16 的 DMRG 给出的态方差不到十亿分之二,能量却高了百万分之 5.6,宇称是 0.002,而不是一个确定值。
方差尽了它的本分:它保证了附近有本征值,却说不出是哪一个。两个态几乎简并时,它们的混合方差也很小。对称破缺的态存起来也更省:第二章的猫态已经表明,偶组合或奇组合在每处切口都要多出 2 的对数那么多纠缠。只有对称性检查能把它揪出来。在临界链上,同样的检查读出的宇称是 1.000。
读一读它找到的纠缠
最后一次扫描结束后,每处切口的 Schmidt 权重都是现成的。临界 Ising 链的纠缠熵曲线符合 Calabrese–Cardy 给出的开放链形式。用 32 个自旋的 DMRG 结果拟合中心荷,得到 0.523992,与用精确自由费米子曲线拟合的结果相差不到千万分之一。它不等于二分之一,是因为 32 个自旋还太短;第二章已经看到,链越长,精确拟合值越接近二分之一。