用Neumann边界条件写泊松方程有限差分矩阵


15

我对使用有限差分法求解泊松方程感兴趣。我想更好地了解如何用Neumann边界条件编写矩阵方程。有人会审查以下内容,对吗?

有限差分矩阵

泊松方程,

2u(x)x2=d(x)

可以用有限差分矩阵方程近似

1(Δx)2Mu^=d^

其中是矩阵,和是(列)向量, Ñ × Ñ ù ð 1 × Ñ中号ñ×ñü^d^1个×ñ

泊松方程的有限差分矩阵

添加Neumann边界条件

诺伊曼边界条件会在边界处强制产生一个已知通量(此处我们将其应用到边界位于的左侧),X=0

üX=0X=σ
将此边界条件写为中心有限差分,

方程式错误。 注意 我最初在这里犯了一个错误,符号错误并且没有被2除。以下内容已得到纠正。

ü2-ü02ΔX=σ

请注意在原始域()之外引入了一个网格点。可以通过引入第二个方程来消除该术语 ü0

ü0-2ü1个+ü2ΔX2=d1个

由于引入了新的网格点,因此该方程式具有更多信息。它允许我们使用居中的有限差分将的双导数写为的边界。ü1个ü0

我不确定的部分

可以将这两个方程合并。为了显示工作原理,让我们首先重新安排未知对象,ü0

ü0=-2σΔX+ü2ü0=ΔX2d1个+2ü1个-ü2

接下来,将它们设置为相等并重新排列为表格,

ü2-ü1个ΔX2=d1个2+σΔX

我选择这种形式是因为它与上面的矩阵方程式相同。请注意,此处和原始方程式中的项均被。这是正确的方法吗?üΔX2

最后,将此方程式用作矩阵的第一行,

左侧具有Neumann边界条件的Poisson方程(已校正)

最后的想法,

  1. 这个最终矩阵正确吗?
  2. 我可以使用更好的方法吗?
  3. 有写这种矩阵的标准方法吗?

2
计算中存在两个错误:中心有限差必须除以。其次,也是错误的,因为减号必须是加号。2ΔXü0=-σΔX+ü2
vanCompute

3
这是相当不错摸索出莱韦克塔的有限差分文,第2章
大卫Ketcheson


Answers:



1

ü0

退后一步,思考问题。指定拉普拉斯方程式从根本上说,每个点都是其邻域的平均值。通常将其可视化为橡胶板,可以帮助我考虑这些问题。(泊松具有或多或少的拉伸点类似)

当您在最外边缘指定溶液表面的值时,您就是在这些点的空间中将板“向下”固定。当您通过边缘的导数指定图纸时,有许多解决方案都可以满足方程式的要求,即在空间上平移图纸,同时保持相同的实际形状,从而保持导数不变。

ü0=0


1
因此,通常用至少一个Dirichlet边界条件求解泊松方程,从而可以找到唯一的解?我认为,只有在包括源和汇时,Neumann边界条件才有意义,否则会有无数个解。但是,如果我改用扩散方程,则有时对于正确的物理学需要Neumann边界条件(例如,当du / dx = 0时,没有量通过边界的通量)。这是我真正感兴趣的。上面的方法是应用Neumann BC的正确方法吗?
boyfarrell

1
您不能在纸张的所有面上应用Neumann BC。如果这样做,您将没有唯一的解决方案。它必须至少固定在一侧。
vanCompute13年

@meawoppl:如何在确定点的同时还要进行直接矩阵求解?
jvriesem

通常,只需将一个项连续设置为1,其余为零,并在RHS上将一个值设置为一个常数,该值对应于您要查看的求解平面即可。
meawoppl 2015年
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.