振荡复向量作为时间函数的积分方法

计算科学 正交 振荡
2021-12-02 09:36:28

我正在尝试解决以下形式的问题:

a(n+1)(t)=0tdτeiHτD(τ)eiHτa(n)(τ)
在哪里D(τ)是一个振荡时变矩阵 (DE(τ)),H是对角矩阵,并且a(n)(t)是时间的向量函数。我想获得a(n+1)(t).D一般来说,振荡的频率明显低于指数引起的振荡,尽管以后的迭代会改变这一点。向量的不同项的频率可能非常不同(由一个因子10可能)。在以后的迭代中a(n)(t)也会震荡。

可能需要注意的重要事项:此步骤的第一步(a(0)) 是常数,因此第一部分的被积函数是众所周知的t.

正如你可能猜到的那样(n+1)(n),这是一个迭代过程,我都想知道a(n)(t)a(n+1)(t)对于每个周期的多个均匀间隔的点D(t).

我不确定我应该怎么做。因为我想找到许多不同值的积分t,类似黎曼和(如梯形规则或类似规则)似乎比高斯正交之类的东西更好,但是,我不确定在处理复杂的振荡函数时什么是好方法。自适应方法是一个不错的选择吗?如果是这样,找到向量自适应步长的好方法是什么?

这个向量的性质只是中等重要:向量大约有 3000 个值长,所以我宁愿不对每个向量进行不同的计算,而是更愿意一次找到它们。

1个回答

原则上这是一个沃尔泰拉积分方程,有几种方法可以求解。

我会首先区分整个表达式以获得

(1)ta(n+1)(t)=eiHtD(t)eiHta(n)(τ)

定义b(i)(t)=eiHta(i), 然后

(2)itb(n+1)(t)=H(t)b(n)(t)+D(t)b(n)(t),b(n+1)(0)=0.

好的,这可能会让你看起来像是回到过去,因为这可能是你来自的地方:薛定谔方程、偶极子近似中的电场、相互作用图等等——你知道这些东西。但关键是,你可以比上面的积分方程更好地求解后一个微分方程。

所以去掉上迭代索引,

(3)itb(t)=(H(t)+E(t)D)b(t)
首先应用一些基本的 Runge-Kutta。此后,我会研究 Crank-Nicolson、Lanczos 方案等。


编辑:好的,你想要迭代加法本身。为此,可以使用边界条件b(0)(t)=1(戴森系列中的第一项)并从这里开始再次求解微分方程。

这里的基本思想是索引版本,Eq.(2),是某种固定点问题(从一个或多或少不相关的初始值开始),当它希望收敛时,它也满足薛定谔方程,Eq .(3)。

我知道,这可能又不是你所期望的,但你的积分和 Eq.(2) 在数学上是等价的,后者更容易解决,所以我会使用它。