Crank-Nicolson 算法解一维含时薛定谔方程

             

  • 本词条处于草稿阶段.
预备知识 薛定谔方程

  1薛定谔方程为

\begin{equation} -\frac12 \frac{\partial^{2}{\psi}}{\partial{x}^{2}} + V\psi = \mathrm{i} \frac{\partial \psi}{\partial t} \end{equation}
用 Crank-Nicolson 或 Caley scheme2 得到的结果是
\begin{equation} \left(1+\frac{ \mathrm{i} }{2} \boldsymbol{\mathbf{H}} \Delta t \right) \boldsymbol{\mathbf{\psi}} ^{n+1} = \left(1-\frac{ \mathrm{i} }{2} \boldsymbol{\mathbf{H}} \Delta t \right) \boldsymbol{\mathbf{\psi}} ^n \end{equation}
其中 $ \boldsymbol{\mathbf{\psi}} ^n$ 是时刻 $t_n$ 的已知矢量,$ \boldsymbol{\mathbf{\psi}} ^{n+1}$ 为时刻 $t_{n+1}$ 的未知矢量.

   但事实上,还可以继续减少计算量.将式 2 整理后得

\begin{equation} \left(\frac12 + \frac{ \mathrm{i} }{4} \boldsymbol{\mathbf{H}} \Delta t \right) \left(\psi^{n+1}+\psi^n \right) = \psi^n \end{equation}
解这个方程,再减去 $\psi^n$ 即可.

1. 等间距网格

   其中二阶导数用三点差分计算,得

\begin{equation} \begin{aligned} \psi_i^{n+1} - \psi_i^n &= \frac{ \mathrm{i} \Delta t}{4\Delta x^2} (\psi_{i-1}^n - 2\psi_i^n + \psi_{i+1}^n + \psi_{i-1}^{n+1} - 2\psi_i^{n+1} + \psi_{i+1}^{n+1})\\ &\qquad\qquad - \frac{ \mathrm{i} \Delta t}{2}(V_i^n\psi_i^n + V_i^{n+1}\psi_i^{n+1}) \end{aligned} \end{equation}
令 $\alpha = \mathrm{i} \Delta t/(4\Delta x^2), \beta = \mathrm{i} \Delta t/2$,整理可得
\begin{equation} \begin{aligned} &\quad -\alpha\psi_{i-1}^{n+1} + (1+2\alpha + \beta V_i^{n+1})\psi_i^{n+1} - \alpha \psi_{i+1}^{n+1}\\ &= \alpha\psi_{i-1}^n + (1 - 2\alpha - \beta V_i^n)\psi_i^n + \alpha \psi_{i+1}^n \end{aligned} \end{equation}
其中 $\psi_i^n = \psi(x_i, t_n)$,$V_i^n = V(x_i, t_n)$.

   我们把一个区间划分成 $N_x - 1$ 段等长的区间,并令 $N_x$ 个格点为 $x_1\dots x_{N_x}$.最简单的边界条件是取 $\psi(x_1) = \psi(x_{N_x}) = 0$.这样式 5 中的 $i$ 可以取 $i = 2\dots N_x - 1$,得到 $N_x - 2$ 条式子,其中只有 $\psi_2^{n+1}\dots \psi_{N_x-1}^{n+1}$ 这 $N_x - 2$ 个未知量,每条式子最多包含连续 3 个未知量.将线性方程用矩阵表示,就可以得到一个三对角矩阵(第一行和最后一行只有两个系数).

2. 虚时间

   使用虚时间后,式 2 式 3 分别变为

\begin{equation} \left(1+\frac12 \boldsymbol{\mathbf{H}} \Delta t \right) \psi^{n+1} = \left(1-\frac12 \boldsymbol{\mathbf{H}} \Delta t \right) \psi^n \end{equation}
\begin{equation} \left(\frac12 + \frac14 \boldsymbol{\mathbf{H}} \Delta t \right) \left(\psi^{n+1}+\psi^n \right) = \psi^n \end{equation}

   (代码未完成)


1. ^ 参考 [32]
2. ^ 二者是一回事,见 [32] 19.2 节.

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

         

© 小时科技 保留一切权利