图

Lanczos 算法

背景介绍

   在计算含时薛定谔方程时,若已知某时刻 $t$ 的波函数 $\Psi(\bvec r,t)$,要求 $\Psi(\bvec r,t+\Delta t)$,通常使用传播算符

\begin{equation} U(\Delta t) = \expRound{-\frac{\I}{\hbar} \int_{t}^{t+\Delta t} \dd{t} \vdot H(t)} \approx \expRound{-\I H(t+\Delta t/2) \Delta t} \end{equation}
其中 $H$ 为哈密顿算符.若 $H$ 不含时,约等号变为等号
\begin{equation} \Psi(\bvec r, t+\Delta t) = \expRound{-\I H\Delta t/\hbar}\Psi(\bvec r, t) \end{equation}
通常情况下,用有限个正交归一基底 $\Psi_0,\dots\Psi_{K-1}$ 近似展开 $\Psi(\bvec r, t+\Delta t)$,这时,$H$ 可以表示成矩阵的形式.
\begin{equation} H_{ij} = \bra{\Psi_i} H \ket{\Psi_j} \end{equation}
这样,幺正算符 $\expRound{-\I H\Delta t/\hbar}$ 也可以表示成矩阵.根据定义
\begin{equation} \expRound{-\I H\Delta t/\hbar} = 1+ (-\I H\Delta t/\hbar) + \frac{1}{2!} (-\I H\Delta t/\hbar)^2\dots \end{equation}
此时若把 $H$ 对角化(求解本征方程),得到本征矢列矩阵 $\mat P$ (单位正交阵)以及本征值矩阵 $\mat \Lambda$ (对角矩阵),则可进行基底变换变到 $H$ 矩阵的本征空间求解上式
\begin{equation}\ali{ \expRound{-\I H\Delta t/\hbar} &= \mat P\times \rm{diag}(\E^{-\I E_1 t/\hbar},\E^{-\I E_2 t/\hbar}\dots \E^{-\I E_N t/\hbar})\times \mat P^{-1}\\ &= \sum_{j=0}^{K-1} P_{ij} \E^{-\I E_j t/\hbar} P_{jk}^{-1} = \sum_{j=0}^{K-1} P_{ij}P_{kj} \E^{-\I E_j t/\hbar} }\end{equation}
要说明的是,这种算法的误差(除数值计算误差)来源于两个方面,第一是用 $\expRound{\I H\Delta t/\hbar}$ 代替 $\expRound{ -\frac{\I}{\hbar} \int_{t}^{t+\Delta t} \dd{t} \cdot H(t) }$, 但如果 不含时就没有该误差,第二是有限数量的基底不具有完备性,这个误差可以随着基底数量增加而减小.

Lanczos 算法

   在以上的算法中,选取施密特正交归一化 的 Krilov 基底作为基底.令 $\Psi_0 \equiv \Psi(\bvec r, t)$, $K$ 阶的 Krilov 基底为

\begin{equation} \qty{ \ket{\Psi_0}, H \ket{\Psi_0}, H^2 \ket{\Psi_0} \dots H^{K-1} \ket{\Psi_0}} \end{equation}
我们把正交归一化后的基底记为
\begin{equation} \qty{ \ket{\Psi_0}, \ket{\Psi_1}, \ket{\Psi_2} \dots \ket{\Psi_{K-1}} } \end{equation}
这样,用其展开哈密顿算符
\begin{equation} H_{ij}=\mel{\Psi_i}{H}{\Psi_j} \end{equation}
在算法上,本来我们可以按部就班地按照以上步骤做,然而由于 Krilov 基底的性质,可以通过一些定理(见词条最后)大大减少计算量.正交归一化步骤如下

  1. 如果 $\Psi(\bvec r,t)$ 没有归一化,将其进行归一化 $\ket{\Psi_0}=\Psi(\bvec r,t)/\braket{\Psi(\bvec r,t)}$.
  2. 把 $\Psi_1$ 进行施密特正交化, 令
    \begin{equation} \ketStar{\tilde\Psi_1} = (1 - \ket{\Psi_0}\bra{\Psi_0})\ket{\Psi_1} \qquad \ket{\Psi_1}=\ketStar{\tilde\Psi_1}/\braketStar{\tilde\Psi_1} \end{equation}
  3. 现在起我们令 $\beta_j = \braketStar{\tilde\Psi_j}$.

定理 1

   对以上定义的基底

\begin{equation} \qtyRound{1 - \ket{\Psi_j} \bra{\Psi_j} - \ket{\Psi_{j - 1}} \bra{\Psi_{j - 1}} - \ldots - \ket{\Psi_0} \bra{\Psi_0}} H^{j + 1} \ket{\Psi_0} \end{equation}
\begin{equation} \qtyRound{ 1 - \ket{\Psi_j}\bra{\Psi_j} - \ket{\Psi_{j - 1}}\bra{\Psi_{j - 1}} - \ldots - \ket{\Psi_0}\bra{\Psi_0}} H \ket{\Psi_j} \end{equation}
共线.故现在起采用后者进行正交化.

定理 2

\begin{equation} \bra{\Psi_{j-1}} H \ket{\Psi_j} = \sqrt{\braketStar{\tilde\Psi_j}} = \beta_j \end{equation}

  1. 把 $H^2 \ket{\Psi_0}$ 进行施密特正交化, 令 $\alpha_i = \mel{\Psi_i}{H}{\Psi_i}$, 根据两个定理,正交化结果也可以写成
    \begin{equation}\ali{ \ketStar{\tilde\Psi_2} &= \qtyRound{1 -\ket{\Psi_1}\bra {\Psi_1} - \ket{\Psi_0}\bra{\Psi_0}} H \ket{\Psi_1}\\ &= H \ket{\Psi_1} - \alpha_1 \ket{\Psi_1} - \beta_1 \ket{\Psi_0} \\ }\end{equation}
  2. 再次归一化 $\ket{\Psi_2} = \ketStar{\tilde\Psi_2} / \braketStar{\tilde\Psi_2} = \ketStar{\tilde\Psi_2}/\beta_2$

定理 3

\begin{equation}\ali{ \ketStar{\tilde\Psi_{j+1}} &= \qtyRound{1 - \ket{\Psi_j}\bra{\Psi_j} - \ldots - \ket{\Psi_0}\bra{\Psi_0}} H \ket{\Psi_j}\\ &= \qtyRound{1 - \ket{\Psi_j}\bra{\Psi_j} - \ket{\Psi_{j-1}}\bra{\Psi_{j-1}}} H \ket{\Psi_j} \\ &= H \ket{\Psi_j} - \alpha_j \ket{\Psi_j} - \beta_j \ket{\Psi_{j-1}} }\end{equation}
这就是最简洁的正交化公式.比起最原始的正交化
\begin{equation} \ketStar{\tilde\Psi_{j+1}} = \qtyRound{1 - \ket{\Psi_j}\bra{\Psi_j} - \ldots - \ket{\Psi_0}\bra{\Psi_0}} H^{j+1} \ket{\Psi_0} \end{equation}
定理 3 只用到了一个矩阵-矢量乘法,两个矢量数乘和两个矢量减法.

   接下来只要对 $j = 2,4,5...K - 1$ 不断重复定理 3 中的正交化和归一化,就可以得到所有正交归一基底 $\ket{\Psi_j} $.

   现在我们来求该基底下的 $\mat H$ 矩阵.根据 $\alpha_i$ 的定义以及定理 2 可以发现它们分别是矩阵的主对角元和副对角元.

定理 4

   在正交归一基底 $\ket{\Psi_j}$ 中, 矩阵 $\mat H$ 是对称三对角矩阵.所以我们已经顺便求出了所有的矩阵元!

\begin{equation} \mat H = \begin{pmatrix} \alpha_0 & \beta_1 &&& \\ \beta_1 & \alpha_1 & \beta_2 && \\ & \beta_2 & \alpha_2 & \ddots& \\ & & \ddots& \ddots & \beta_{K-1} \\ &&&\beta_{K-1} & \alpha_{K-1} \end{pmatrix}\end{equation}
该矩阵具有维数小,易求本征问题的优势.

定理 1 证明

   根据施密特正交化的性质,Krilov 基底的前 $j$ 项的与 $\ket{\Psi_0}\dots\ket{\Psi_j}$ 展开同一空间.所以 $H^j\ket{\Psi_0} = c_j\ket{\Psi_j} +\ldots + c_0 \ket{\Psi_0}$,所以(以下所有系数 只是用来表示线性组合,具体值不重要)

\begin{equation}\ali{ H^{j+1} \ket{\Psi_0} &= c_j H \ket{\Psi_j} + H \qtyRound{c_{j-1} \ket{\Psi_{j-1}} \dots + c_0 \ket{\Psi_0}} \\ & = c_j H \ket{\Psi_j} + H \qtyRound{c'_{j-1} H^{j-1} \ket{\Psi_0} + c'_{j-2} H^{j - 2} \ket{\Psi_0} \dots + c'_0 \ket{\Psi_0}} \\ &= c_j H \ket{\Psi_j} + \qtyRound{c'_{j-1} H^j \ket{\Psi_0} + c'_{j-2} H^{j-1} \ket{\Psi_0} \dots + c'_0 \ket{\Psi_0}} \\ &= c_j H \ket{\Psi_j} + \qtyRound{c''_{j-1} \ket{\Psi_j} + c''_{j-2} \ket{\Psi_{j-1}}+ \ldots + c''_0 \ket{\Psi_0}} \\ }\end{equation}
把 $H^{j+1}\ket{\Psi_0}$ 施密特正交归一化
\begin{equation}\ali{ &\phantom{=} \qtyRound{1 - \ket{\Psi_j}\bra{\Psi_j} - \ldots - \ket{\Psi_0}\bra{\Psi_0}} H^{j+1} \ket{\Psi_0} \\ &= c_j \qtyRound{1 - \ket{\Psi_j}\bra{\Psi_j} - \ldots - \ket{\Psi_0}\bra{\Psi_0}} H \ket{\Psi_j}\\ &\phantom{=} + \qtyRound{1 - \ket{\Psi_j} \bra{\Psi_j} - \ldots - \ket{\Psi_0} \bra{\Psi_0}} \qtyRound{c''_{j-1} \ket{\Psi_j} + c''_{j - 2} \ket{\Psi_{j - 1}} + \ldots + c''_0 \ket{\Psi_0}} \\ &= c_j \qtyRound{1 - \ket{\Psi_j}\bra{\Psi_j} - \ldots - \ket{\Psi_0}\bra{\Psi_0}} H \ket{\Psi_j} }\end{equation}

定理 2 证明

   要证 $\bra{\Psi_{j-1}} H \ket{\Psi_j} = \sqrt{\braketStar{\tilde\Psi_j}}$, 即证 $\melStar{\Psi_{j - 1}}{H}{\tilde \Psi_j} = \braketStar{\tilde\Psi_j}$, 即证 $\braketStar{\tilde\Psi_j} = \braketStarTwo{\tilde\Psi_j}{H\Psi_{j-1}}$ 而

\begin{equation} \braketStar{\tilde\Psi_j} = \melStar{\tilde\Psi_j}{\qtyRound{1-\ket{\Psi_{j-1}}\bra{\Psi_{j-1}} - \ldots - \ket{\Psi_0}\bra{\Psi_0}} H}{\Psi_{j-1}} \end{equation}
由于上式中 $\braStar{{\tilde \Psi }_j} \qtyRound{\ket{\Psi_{j - 1}} \bra{\Psi_{j - 1}} - \ldots - \ket{\Psi_0} \bra{\Psi_0}} = 0$
\begin{equation} \braketStar{\tilde\Psi_j} = \melStar{\tilde\Psi_j}{H}{\Psi_{j-1}} \end{equation}

定理 3 证明

   要证明定理 3,即证,对 $n \leqslant j - 2$, 有 $\bra{\Psi_n} H \ket{\Psi_j} = 0$, $H$ 为厄米算符时即证 $\bra{\Psi_j} H \ket{\Psi_n} = 0$,即证对 $m \geqslant j + 2$, $\bra{\Psi_m} H \ket{\Psi_j} = 0$. 在定理 1 的证明类似,我们知道

\begin{equation}\ali{ H \ket{\Psi_j} &= H \qtyRound{c_j H^j \ket{\Psi_0} + \ldots + c_0 \ket{\Psi_0}} = c_j H^{j+1} \ket{\Psi_0} + \ldots + c_0 H \ket{\Psi_0}\\ &= c'_j \ket{\Psi_{j+1}} + \ldots + c'_0 \ket{\Psi_0}\\ }\end{equation}
所以对 $m \geqslant j + 2$ 有
\begin{equation} \bra{\Psi_m} H \ket{\Psi_j} = \bra{\Psi_m} \qtyRound{c'_j \ket{\Psi_{j+1}} + \ldots + c'_0 \ket{\Psi_0}} = 0 \end{equation}

定理 4 证明

   首先证明 $\mat H$ 是三对角矩阵.即证 $m \geqslant j + 2$ 或 $m \leqslant j - 2$ 时 $\bra{\Psi_m} H \ket{\Psi_j} = 0$. $m \geqslant j + 2$ 的情况在证明 3 中已经证明,只需证明另一种情况. 对厄米矩阵, $\braketStarTwo{H\Psi_m}{\Psi_j} = \mel{\Psi_m}{H}{\Psi_j} = 0$, 取复共轭,即 $\mel{\Psi_j}{H}{\Psi_m} = 0$. 可见左边的角标的确小于等于右边的角标减 2,证毕.

   然后证明 $\mat H$ 是实矩阵,考虑到厄米矩阵 $H_{mn} = H_{nm}^* $ 的性质,只需要证明 $H_{j, j+1}$ 是实数.对任意 $j = 2 \dots K-1$

\begin{equation}\ali{ H_{j, j+1} &= \mel{\Psi_j}{H}{\Psi_{j+1}} = \bra{\Psi_j} H \qtyRound{H \ket{\Psi_j} - \alpha_j \ket{\Psi_j} - \beta_j \ket{\Psi_{j-1}}} \\ &= \mel{\Psi_j}{H^2}{\Psi_j} - \alpha_j \bra{\Psi_j} H \ket{\Psi_j} - \beta_j \bra{\Psi_j} H \ket{\Psi_{j-1}} }\end{equation}
易证 $\evTwo{H^2}{\Psi_j}$, $\alpha_j$ 及 $\beta_j$ 是实数,只需要证明 $\mel{\Psi_j}{H}{\Psi_{j-1}}$ 是实数即可,即证 $\mel{\Psi_{j-1}}{H}{\Psi_j}$ 是实数,重复上述论证,即证 $\mel{\Psi_{j-2}}{H}{\Psi_{j - 1}}$ 是实数,……,即证 $\mel{\Psi_1}{H}{\Psi_0}$ 是实数,即证 $\mel{\Psi_0}{H}{\Psi_1}$ 是实数,即证 $\melStar{\Psi_0}{H}{\tilde\Psi_1}$ 是实数.而
\begin{equation} \melStar{\Psi_0}{H}{\tilde\Psi_1} = \bra{\Psi_0} H \qtyRound{H \ket{\Psi_0} - \alpha_0 \ket{\Psi_0}} = \evTwo{H^2}{\Psi_0} - \alpha_0 \evTwo{H}{\Psi_0} \end{equation}
显然是实数.以上的思路是数学归纳法的逆过程.

致读者: 小时物理百科一直以来坚持所有内容免费且不做广告,这导致我们处于日渐严重的亏损状态。长此以往很可能会最终导致我们不得不选择商业化,例如大量广告,内容付费,会员制,甚至被收购。因此,我们鼓起勇气在此请求广大读者热心捐款,使网站得以健康发展。如果看到这条信息的每位读者能慷慨捐助 10 元,我们几天内就能脱离亏损状态,并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。感谢您的支持。
—— 小时(项目创始人)

编辑词条 返回目录 返回主页 捐助项目 © 小时物理百科 保留一切权利