泊松方程矩形区域边界条件的离散化方法
泊松方程矩形区域边界条件的离散化方法
泊松方程是数学物理中一个重要的偏微分方程,广泛应用于热传导、电磁场、弹性力学等领域。在实际应用中,边界条件用于描述物体表面与外界的交互作用。在数值求解偏微分方程时,这些边界条件需要被离散化并融入到数值方法中。
第二类边界条件(Neumann边界条件)
第二类边界条件可以表示为场函数在边界上的法向导数等于一个给定的函数,其公式为:
$$
\frac{\partial u}{\partial n} = g(x,y)
$$
其中,$\frac{\partial u}{\partial n}$ 表示场函数$u$在边界$\partial\Omega$的外法线方向上的导数,$g(x,y)$是给定的函数。
第三类边界条件(Robin边界条件)
第三类边界条件表示为场函数在边界上的函数值和法向导数的线性组合等于一个给定的函数,即:
$$
a u + b \frac{\partial u}{\partial n} = g(x,y)
$$
这里,$a$ 和 $b$ 是常数,$u$ 是场函数,$\frac{\partial u}{\partial n}$ 是场函数在边界的外法线方向上的导数,$g(x,y)$是给定的函数。特别地,当$a=0$时,Robin边界条件变为Neumann边界条件;而当$b=0$时,它变为Dirichlet边界条件(第一类边界条件)。
离散化方法
对于这两类边界条件的离散化,在矩形区域上,我们可以采用有限差分法。
第二类边界条件(Neumann)的离散化
- 确定边界点:首先确定哪些网格点位于需要应用Neumann边界条件的边界上。
- 法向导数的近似:
- 对于水平边界,如顶部边界,法向导数主要是$y$方向的导数,可以采用中心差分近似:
$$
\frac{\partial u}{\partial y} \approx \frac{u_{i,j+1} - u_{i,j-1}}{2\Delta y}
$$ - 对于垂直边界,如右侧边界,法向导数则主要是$x$方向的导数,同样采用中心差分近似:
$$
\frac{\partial u}{\partial x} \approx \frac{u_{i+1,j} - u_{i-1,j}}{2\Delta x}
$$
- 应用边界条件:将计算出的法向导数值设置为边界条件中给定的$g(x,y)$。
第三类边界条件(Robin)的离散化
- 确定边界点:与Neumann边界条件类似,先确定哪些网格点位于需要应用Robin边界条件的边界上。
- 离散格式:
- 对于水平边界:
$$
a u_{i,j} + b \frac{u_{i,j+1} - u_{i,j-1}}{2\Delta y} = g(x_i,y_j)
$$ - 对于垂直边界:
$$
a u_{i,j} + b \frac{u_{i+1,j} - u_{i-1,j}}{2\Delta x} = g(x_i,y_j)
$$
- 应用边界条件:将上述离散格式应用于满足Robin边界条件的所有边界点。
示例:处理边界上的外部点
假设我们有一个竖直边界,其中$(x_i, y_j)$在边界上。再假设$x_{i-1}$是内部点,而$x_{i+1}$是外部点。在这种情况下,我们可以利用Robin边界条件的离散形式来表示外部点$x_{i+1}, y_j$上的场函数值。具体来说,我们有:
$$
a u_{i,j} + b \frac{u_{i+1,j} - u_{i-1,j}}{2\Delta x} = g(x_i,y_j)
$$
现在,当我们在这个边界点上应用五点差分格式时(这通常用于求解二维泊松方程$-\nabla^2 u = f$),该格式可以表示为:
$$
-\frac{u_{i+1,j} - 2u_{i,j} + u_{i-1,j}}{\Delta x^2} - \frac{u_{i,j+1} - 2u_{i,j} + u_{i,j-1}}{\Delta y^2} = f_{i,j}
$$
将Robin边界条件的离散形式代入五点差分格式中,我们得到:
$$
-\frac{u_{i+1,j} - 2u_{i,j} + u_{i-1,j}}{\Delta x^2} - \frac{u_{i,j+1} - 2u_{i,j} + u_{i,j-1}}{\Delta y^2} = f_{i,j}
$$
进一步整理这个方程,我们得到:
$$
-\frac{2u_{i,j} - u_{i-1,j} + \frac{2b}{a}u_{i,j} - \frac{2b}{a}u_{i-1,j} + \frac{2b}{a}g(x_i,y_j)}{\Delta x^2} - \frac{u_{i,j+1} - 2u_{i,j} + u_{i,j-1}}{\Delta y^2} = f_{i,j}
$$
这个方程现在只涉及内部网格点和右边界上的网格点,且已经包含了Robin边界条件的影响。注意,在右边界上,我们不再需要$u_{i+1,j}$,因为它已经被Robin边界条件所替代。
通过这种方式,我们能够在不引入额外未知数的情况下处理边界条件,使得数值求解过程更加简洁和高效。
北太天元示例
求解问题是 $-\nabla^2 u = f$,矩形区域 $[0,L_x]\times [0, L_y]$,三个边的边界条件是第一类边界条件,仅仅右边界改成 Robin 边界条件 $u_x + u = g$。我们设好了精确解是 $u(x,y) = \sin\left(\frac{m\pi x}{L_x}\right)\sin\left(\frac{n\pi y}{L_y}\right)$,$g$ 用精确解来给计算出来的。最后形成的线性方程组$Au = b$,考虑所有的网格点的,包括内部网格点和边界网格点,边界条件会修改$A$和边界有关的行和$b$相关的分量。