用 Neumann 边界条件计算二阶导数

计算科学 有限差分 边界条件 稳定
2021-12-22 13:57:20

我正在为具有 Neumann 边界条件的 PDE 实施有限差分法。我将把我的问题简化为一个维度。

假设我有一个 PDE

ut=2ux2+ (other terms)

在区间上。我在 PDE 上施加了 Neumann 边界条件[a,b]

ux=0

处。x=ab

在我的有限差分方案中,我需要在点我该怎么做?2ux2x=ax=b

我在网上找到的一种解决方案是引入虚拟点处使用中心方案根据这些虚拟点的计算方式,得到的近似值往往会发生很大变化。有没有更好的方法来构建这些虚拟点?a<ab>bab

1个回答

让我们为左边界点做它,为简单起见假设要在 =0 处实现 = 0,假设函数偶数在 =0 附近,让网格点为等。然后,利用函数处的标准二阶精确中心差计算的二阶导数变为x=aa=0uxxu(x)xx0=0x1=hu(x1)=u(x1)x=0

u(0)=1h2(u(x1)+u(x1)2u(x0))=2h2(u1u0)

很容易看出,这个表达式只是 =0 处的泰勒展开式,其中 =0。另一种看待它的方式,我们正在创建一个虚拟(鬼)网格点对于更高阶的方案,使用这种方法需要引入两个或多个鬼点。但是这里的鬼点的选择没有任意性(它们只是实际网格点的镜像),只要在网格上解决解决方案,结果应该按照形式精度收敛到确切的答案方案的顺序。xu(0)x1=x1