前面提到的一些例子中,系统的基态波函数都可以通过解析方式得到并简单地表示出来。但是这些只是一些特殊的例子。一般来说,一个强关联模型的基态波函数是不能很容易地通过解析方式得到的,比如而之前介绍的处理张量的方法都是在已知具体张量数值时才能使用的。这就要求我们找到一些数值方法来得到这些具体数值。
这一部分将介绍两种常见的用于得到基态波函数的方法,分别是变分法和虚时间演化方法[1]40-46。
1.1变分法得到基态波函数
用变分法得到基态波函数的基础是基态波函数是系统所能处于的能量最低的状态。也就是说,设E0是系统的基态能量,那么对系统任意的波函数必定满足
HE0 (29)
当取基态波函数的时候取等号。因此,用MPS或PEPS描述系统时(关联指标取某一确定的维数),我们可以用改变指标具体数值的方法改变波函数,使能量达到最低,此时就得到了基态波函数。
为此,我们可以先取一个初始状态。也就是说,先对所有的矩阵元设定一个初值。令波函数取能量最小值等价于使
familyminH (30)
其中family指MPS或PEPS的波函数。同时对所有的张量进行变分是十分困难的,因此可以用“扫描”的方法,逐个对每一个张量进行变分,在对某一个张量变分时,保持其它张量不变。比如,对某一张量A变分时,上式可以写成
minA†HeffAA†NA (31)
A其中Heff是对A的有效哈密顿矩阵,N是一个正规矩阵,它们都是由A以外的“环境张量”决定的,可以通过收缩环境张量得到。收缩环境张量的方法可以采用之前介绍的密度矩阵重正化群或张量重正化群方法完成。当取变分极值时,有
A†HeffAA†NAA†0,也就是
HeffANA (32)
这样对A的变分就变成了求解上面的线性方程。在Heff和N都得到的时候,通过方程是很容易得到满足要求的A。然后通过同样的步骤对其它的张量分别进行变分,完成一次“扫描”。不断进行这样的“扫描”,直到所有的张量达到收敛,就可以得到系统的基态波函数。需要注意的是,虽然这个方法对于任意选取的初始状态都有效,当我们选择的初态与系统的基态很接近时,就可以大大减小张量达到收敛所需要的扫描次数。因此为了计算的效率,应当尽量选择与基态接近的状态作为初始状态。同时,收敛环境张量时,若是MPS就可以精确得到结果,而PEPS只能近似得到结果。
1.2虚时间演化法
虚时间演化法是另一类得到基态波函数的方法。它的主要思想是将一个任意的波函数进行虚时间演化,并归一化,那么只要这个波函数与基态波函数有重叠部分,最后就会收敛到基态。即:
E0limeH0 (33)
其中eH0。可以看出,将初态看做能量的各本征态的叠加,那么上式的分子部分eH0的高能状态将更快地衰减,而基态的衰减是最慢的,再通过归一化的过程,当时间趋于无穷时,结果就会收敛到基态。
具体实现这样的虚时间演化时,我们将时间演化分成很多的无穷小时间演化,也就是每一次演化中使
0,或者每一次的演化可以写成
hi,jeH0,0。假设相互作用可以写成最近邻形式的,即
H可以定义演化算符gijei,jhi.j,那么时间演化算符可以写成eHehi,jo(2)i,j
,时间演化就可以表示成用演化算符依次作用
在波函数上的形式。从初态开始反复进行这样的极短时间的虚时间演化,直到波函数收敛到能量最低的状态,就可以得到基态波函数。
这样,我们已经有了处理量子多体系统的一般方法。然而,这样的程序的稳定性依然是一个必须考虑的问题。上面的方法在实际运用中还存在一些问题。比如,上面用到的正规矩阵N是一个厄密矩阵,但是一般只能近似得到,且存在非常接近0的本征值,因此在用计算机计算时常常会得到负值的本征值。解决这个问题的方法一般有:
1.当张量矩阵不存在闭合的“圈”时(如MPS),总是可以找到一种张量
变换形式使得N为一个单位矩阵。这实际上就是之前提到过的张量网络的正则形式。在这个形式下,张量网络的计算会十分方便。
2.当张量网络存在闭合的“圈”时,如对PEPS,我们可以给N加上一个无穷小量,也就是用NI代替N,其中0。或者可以将近似得到的正规矩
阵N尽可能地“厄密化”,将N用它本身和它的转置共轭之和代替,以修正计算
†时产生的误差,也就是用N(NN)/2代替N进行下一步计算,新的矩阵是
一个严格的厄密矩阵。这样做的好处是新的矩阵与原来的矩阵的区别足够小,而又避免了误差导致的负本征值的问题。
因篇幅问题不能全部显示,请点此查看更多更全内容