ode求解器中的Trotter扩展?

计算科学 数值分析 计算物理学 运算符拆分
2021-12-27 21:11:52

Trotter 展开说: P = 2时,它变为(高精度) e^{A/4} e^{B/2} e^{A/2} e^{B/2} e^{A/4}。

eA+B=limP(eA/2PeB/PeA/2P)P.
P=2
eA/4eB/2eA/2eB/2eA/4.

假设我想解决 dydt=Cy,其中C=A+BC可以是时间相关的。在使用任何 ode 求解方案之前,如何通过将C拆分为AB这样做是否会提高性能,例如矩阵指数?

背景资料: https ://www.quora.com/What-is-the-significance-of-the-Trotter-product-formula-in-physics

2个回答

您提出的建议被广泛称为Strang 分裂有大量关于类似方法的文献。在这个网站上也有很多关于同一主题的问题一个标签

您的问题似乎表明,在您的情况下,ODE 是线性的(但可能与时间有关),并且您不假设有任何特殊结构。在这种情况下,(通常)使用拆分方法不会获得任何收益。当您的右手边可以分解为两个附加部分时,拆分方法很有用,每个附加部分都比组合更容易集成。C

你的方程有精确解dydt=C(t)y

y(t)=Texp(0tC(s)ds)y(0)

其中是时间排序运算符,它将稍后的运算符向左排序。通过离散和 ( ) 近似积分,Tt=NΔt

y(t)=Texp(i=1NH(ti)Δt)y(0)

并拆分条款(*),

y(t)=Ti=1Nexp(H(ti)Δt)y(0).

现在您可以简单地应用时间排序运算符,导致

y(t)=i=1Nexp(H(ti)Δt)y(0).

后一个方程表示可以重复应用矩阵指数来获得解。这是几乎所有数值积分器都依赖的事实。

现在注意标有 (*) 的步骤。这里将几个算子之和的指数分解为这些指数的乘积,即多次应用基本分裂公式(公式为,当然,这只是两个运营商不通勤时的近似值)。exp(H1+H2)=exp(H1)exp(H2)

这对您求解方程有何帮助?绝不。但很高兴知道。对于您问题的实际部分,请阅读您在 quora 上的链接问题中的第一个答案,它基本上说明了一切。