使用 Runge-Kutta 方法验证 PDE 的平稳解的收敛性

计算科学 pde 龙格库塔 确认
2021-12-08 06:39:19

我正在使用 Runge-Kutta 方法对非线性波 PDE 进行数值求解,并且我知道我正在寻找的解决方案在时间上是恒定的,但我不知道解决方案。验证我收敛到正确解决方案的好方法是什么?

附加信息:我知道这个解决方案是唯一稳定的解决方案

2个回答

当您将 PDE 从ut=你得到一个 ODEdudt=. PDE 达到稳定状态时dudt足够小,所以只需求解,直到 ODE 的右侧低于某个容差。

如果您从以下形式的 PDE 开始

ut=F(u), u(0)=u0
u在某个函数空间中取值,则稳态问题的解对应于
F(u)=0.
在大多数情况下,F包含非线性、微分算子、边界条件等,当离散化以形成一个 ODE 系统时,您可以使用 Runge-Kutta 或其他一些积分器。

除非你做了一些非常糟糕的事情,否则你的解决方案应该收敛到稳定的稳态解决方案,但这里是你可以检查的方法。如果你只是解决F(u)=0(在离散化设置中),您通常会使用牛顿法或一些变体。但是,这并不能保证解决方案的稳定性u. 然而,牛顿方法有一个修改,它保证只收敛到系统的稳定解ut=F(u), 要么ut=F(u),取决于您在哪里阅读。

这种方法被称为伪瞬态延续ΨTC)。它的工作原理与另一个答案类似,因为它基本上运行时间积分器,直到解决方案更新处于某个低容差之下,但是这种方法将其与牛顿法相结合,一旦接近稳定的稳态解决方案,就会二次收敛。

以下是一些资源:

幻灯片

编辑:这相当于一种 Rosenbrock 积分器,用于其他答案的评论中提到的 Julia 工具中。