我正在使用 Crank-Nicholson 方法通过拆分算子方法求解时间相关的薛定谔方程。我得到了一些奇怪的结果,这可能是我的代码中某处存在错误的结果。
以防万一,我想我应该检查一下我使用的方法是否不稳定。
分裂算子方法是否会改变 Crank-Nicolson 方法的稳定性属性?
如果是这样,怎么做?
我正在使用 Crank-Nicholson 方法通过拆分算子方法求解时间相关的薛定谔方程。我得到了一些奇怪的结果,这可能是我的代码中某处存在错误的结果。
以防万一,我想我应该检查一下我使用的方法是否不稳定。
分裂算子方法是否会改变 Crank-Nicolson 方法的稳定性属性?
如果是这样,怎么做?
时间相关的薛定谔方程并不是真正的热方程。尽管如此,Crank-Nicolson 方法仍然非常适合其解决方案。但是,Crank-Nicolson 方法是完全隐式的,因此“用 ADI 做隐式部分”的说法听起来有点可疑。这可能意味着类似扩散的部分是由 ADI 完成的。我想知道这是否意味着潜在部分由分析解决方案以及运算符拆分方案的另一个应用程序处理。(但为什么我们称其为 Crank-Nicolson 方法?)
对于热方程,通常会讨论 ADI 方法 Peaceman-Rachford、Douglas-Rachford 和 Douglas-Gunn。我不太确定这种分析对假/正式热方程有多少影响,但至少道格拉斯-拉奇福德肯定不适合薛定谔方程。当然有可以用于薛定谔方程的稳定 ADI 方案(可能是 Douglas-Gunn 工作的),但不能保证适用于热方程的任意 ADI 方案也适用于薛定谔方程。但即使它不稳定,它也可能只是弱不稳定,所以你应该仍然能够得到“一些”结果。所以真正“奇怪”的结果可能与 ADI 方案的稳定性不同。