是否可以不使用Newton-Raphson迭代来求解非线性PDE?


15

我试图了解一些结果,并希望对解决非线性问题提出一些一般性意见。

Fisher方程(非线性反应扩散PDE),

üŤ=düXX+βü1个-ü=Fü

以离散的形式

üĴ=大号ü+βüĴ1个-üĴ=Fü

其中大号是微分算子,ü=üĴ-1个üĴüĴ+1个是离散化模具。

方法

我希望应用隐式方案,因为我需要稳定性和不受限制的时间步长。为此,我使用θ方法(请注意,θ=1个提供了完全隐式的方案,θ=0.5提供了梯形或“ Crank-Nicolson”方案),

üĴ=θFüñ+1个+1个-θFüñ

但是,对于非线性问题,这无法完成,因为方程式不能以线性形式编写。

为了解决这个问题,我一直在探索两种数值方法,

  1. IMEX方法

    uj=θLun+1+(1θ)Lunθmethod diffusion term+βujn(1ujn)完全明确的反应项

    最明显的途径是忽略反应项的非线性部分,而只用可能的最佳值(即上一个时间步长)更新反应项。这导致IMEX方法。

  2. 牛顿求解器

νk+1=νk(IθτAn)1(νkun(1θ)τF(wn)θτF(wn+1))

完整的方法方程可以使用Newton-Raphson迭代来求解,以找到将来的求解变量。其中是迭代索引(),是的雅可比矩阵。在这里,我将符号用于迭代变量,以使它们在实时点与方程的解区分开。实际上,这是经过修改的牛顿求解器,因为并不是每次迭代都更新雅可比行列式。ķ ķ 0 Ñ ˚F 瓦特Ñν ķ ù Ñθkk0AnF(wn)νkuñ

结果

费舍尔方程数值方法的比较。

以上结果是针对相当大的时间步长计算的,它们显示了时间步长方法与完整的牛顿迭代求解器之间的差异。

我不明白的事情:

  1. 令我感到吃惊的是,时间步长方法的确“可以”,但随着时间的流逝,它最终落后于分析解决方案。(注意,如果我选择了较小的时间步长,则时间步长方法可使结果接近分析模型)。为什么采用时间步长法对非线性方程给出合理的结果?

  2. 牛顿模型的性能要好得多,但是随着时间的推移,它开始引领分析模型。为什么牛顿法的准确性会随着时间而降低?精度可以提高吗?

  3. 为什么会有一个普遍的特征,那就是在经过多次迭代之后,数值模型和解析模型开始出现分歧?这仅仅是因为时间步长太大还是会一直发生?


我建议阅读ODE求解器的基本错误分析,例如,在Hairer /Nørsett/ Wanner中,以及一些稳定性分析。届时您的大部分问题都会得到解答。
Guido Kanschat 2013年

1
@boyfarrell,为避免引起其他读者的困惑,应在解释方法的正确位置使用术语:1. IMEX-显式表示非线性,隐式表示线性部分。2.这是标准的 -scheme,通常将需要牛顿方法来解决更新θ
1

1
您好@Jan,我想我什么都有。再次感谢你的帮助。
boyfarrell 2013年

Answers:


9

我假设您已经进行了空间离散化,所以您要求解(矢量值)ODE 通过数值方案将当前时间点处的近似值推进到处的下一个值。Φü Ñ ħ=ÑÜ Ñ + 1 ħ=Ñ+1=Ñ+τ

u˙h(t)=Fh(t,uh(t)), on [0,T] ,uh(0)=α.
Φuhnt=tnuhn+1t=tn+1:=tn+τ

然后,您的问题将涉及显式的属性,其中更新写为

uhn+1=uhn+Φe(tn,τ,uhn),

隐式,写成

uhn+1=uhn+Φi(tn,τ,uhn+1,uhn),()

两者的组合(“ IMEX ”,请参阅@Jed Brown的答案)单步时间步调方案。

在此设置中,牛顿法只是解决导致的系统中可能非线性的一种方法。uhn+1()

我的答案基于单步法数值分析的结果。

  1. 如果使用收敛方案,就收敛顺序而言,使用隐式方案没有一般优势(请参阅第2节)。但是,对于刚性系统(例如,包含Laplacian的系统),存在隐式方案,这些方案稳定且不受时间步长的限制。但是,从理论上讲,对于显式方案,只要方程本身是稳定的(例如,如果第二个参数中的是Lipshitz ,请参考Picard-Lindelof定理),您就可以用较小的时间步长获得更好的结果。步骤不是太小。Fh
  2. 您可以找到示例,其中显式方案的效果更好。(理论上,您可以反转示例中的时间,从终端值开始,然后找到隐式和显式的互换。)如果使牛顿误差足够小,则仍可以通过减少时间步长或使用时间来提高精度。阶步进方案。
  3. 全局误差的误差估计中的常数随着时间间隔的长度呈指数增长。参见例如此处的显式欧拉方案。对于每个单步方法都是如此。由于估计的类型为,,因此较小的时间步长只会推迟这种效果。CerrCτpp>0τ

一些更多的评论和最终答案:

  • IMEX方案可用于仅隐式处理线性部分,从而避免了非线性求解。参见杰德·布朗的答案。
  • Crank-Nicolson是单步方法。多步骤方法中的“多”是指使用多个先前的时间步来定义当前更新。例如 这与单步,分步或IMEX方法有很大的不同,在后者中,更新被定义为不再重复以前的值。
    uhn+1=Φm(tn,τ,uhn+1,uhn,uhn1).

因此,我的答案是:是的,无需牛顿法就可以求解非线性PDE。您可以使用显式方案,“ IMEX”方案或所谓的线性隐式方法(例如Rosenbrock方法)。另外,您可以采用其他方法来从求解系统,例如定点迭代或在特定情况下为代数求解器。()


是的,我已经将标准的中心差异模具应用于扩散项。我无法使用明确的方案(针对我要解决的实际问题),因为稳定的时间步长很小。这就是为什么我要探索IMEX或隐式选项的原因。关于您的第三点,为避免错误累积,我必须使用多步方法。我上面使用的Crank-Nicolson方案(与Newton求解器一起使用)是否被分类为多步方法(它具有两个时间点)?使用牛顿求解器方法时,错误随时间增加而感到惊讶。
boyfarrell

Crank-Nicolson是单步方法,因为它写为。另外,我看不出为什么多步方案应避免错误累积。uhn+1=uhn+Φ(tn,τn,uhn,uhn+1)
1

1
好,谢谢您对CN方法的解释。是的,有趣的是为什么多步方法似乎具有较低的错误累积。我现在了解,牛顿求解器具有错误累积的原因是因为它是单步方法。顺便说一句,我知道您喜欢Python。我使用scipy,numpy和matplotlib,gist.github.com
danieljfarrell / 6353776进行

我删除了Trefethen等人的论文链接。等 从我的答案中了解高阶IMEX集成,因为有更好的参考来了解IMEX方案。
2013年

12

简短答案

如果您只想要二阶精度而没有嵌入式误差估计,那么您很可能会对Strang分裂感到满意:反应的半步,扩散的整个步,反应的半步。

长答案

即使具有线性反应,反应扩散也因证明分裂误差而闻名。实际上,情况可能更糟,包括“收敛”到错误的稳态,将稳态误认为是极限循环,混淆稳定和不稳定的配置等等。参见Ropp,Shadid和Ober(2004)和Knoll,Chacon,Margolin和Mousseau(2003),以了解计算物理学家对此的看法。有关数学家对有序条件的分析,请参见Hairer和Wanner关于刚性ODE(Rosenbrock-W方法是线性隐式IMEX方法)的书,Kennedy and Carpenter(2003年)针对非线性隐式IMEX“加法” Runge-Kutta,和Emil Constantinescu的页面,了解最新的IMEX方法。

通常,IMEX方法比单独的基础隐式和显式方法具有更多的排序条件。可以将IMEX方法对设计为具有所需的线性和非线性稳定性,并使其满足该方法的设计顺序之前的所有顺序条件。满足所有阶条件将使渐进分裂误差与每个方案中的误差分别保持相同的规模。它没有提到渐近前状态(时间步长大/精度要求低),但是它很少比单独解决每个部分更严格。在任何情况下,分割误差对于嵌入式误差估计器都是可见的(使用自适应误差控制时)。

PETSc中有许多IMEX方法的ROSENBROCK-W添加剂龙格-库塔家庭,将有外推法和线性多IMEX在我们的下一个版本。

免责声明:我写了很多PETSc时间集成支持,并与Emil合作(上面有链接)。


我当然是从物理学的角度来解决这个问题的,所以所有的技术细节都需要我花费一些时间,因为我对许多术语并不熟悉。我实际上是一名实验师!您能多解释一下订单条件吗?IMEX是Jan提到的这些多步骤方法吗?
boyfarrell

顺序条件是ODE方法的系数之间的关系(例如,对于Runge-Kutta方法,在Butcher表中的条目)必须具有精确度的顺序才能满足。在设计ODE积分方法的任何书籍或论文中都讨论了订单条件,但基本上等于在泰勒展开中重复应用导数和匹配项。对于高阶方法,阶数条件的数量迅速增长,这就是为什么设计高阶方法变得困难的原因。通过显示订单条件相互不兼容来建立障碍。
杰德·布朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.