1. FDM解常微分方程
1.1. 问题描述
这是二阶常微分方程(second-order Ordinary Differential Equation, ODE),考虑最简单的情况即,积分后可得
,有两个待定系数,因此要求解该方程必须提供两个边界条件(因为方程中不包含时间项,因此无初始条件),例如
1.2. 场和边界
我们把上述方程转化为一个场(field)。试想存在一维(因为仅与一个变量有关)直线,线上有若干等距分布的结点(node),每个结点都有唯一的
,那么
和
的关系满足上述方程。
内部结点满足方程,那么边界上的和
呢?事实上,边界应是内部结点的延申,即边界点也应该满足上述方程。这也是为什么我们可以通过两个边界条件求解
的原因,这隐含的假设就是边界点满足常微分方程。
1.3. 结点上的值
用数值方法求解上述方程等价于求解场内每个结点上的,结点
的上式表达为
如何从结点值得到导数值?很自然想到用Taylor展开。需要注意的是,Taylor展开隐含的假设是
无限可导。将
关于周围两点做Taylor展开,即
假设等距,则
其中为离散误差或截断误差(discretization or truncation error),该误差正比于距离的平方,因此我们称上式对导数的逼近有二阶精度。
1.4. 边界条件
上一部分是对场内部结点的推导。边界上结点的值为边界条件,有以下三种形式:
1.4.1. Dirichlet
1.4.2. Neumann
将结点2关于结点1做Taylor展开,可以得到一阶精度的梯度表达式
将结点3关于结点1做Taylor展开,结合上式可以进一步得到二阶精度
对于非Dirichlet的边界条件,应尽量让边界点也满足内部结点的控制方程。
对和
关于结点1展开可得
将边界条件公式(3)代入上式可得
将上式整理并消去三阶导数项()可得结点1满足的二阶导数项的离散格式:
上式为结点1满足的控制方程,并用上了梯度边界条件。需要说明的是,不用公式(6)而用公式(4,5)同样可以求解问题,但是前者的精度更高。
上述处理方式的意义:FDM的操作流程是对微分方程逐项离散、在每个结点上离散。本节离散的ODE只包含一个二阶导数项,需要在每个结点上对其离散。前文对内部结点采用二阶中心差分离散,我们同样希望在边界点对二阶导数项做离散,因此有了方程(6).
除了上述采用内结点对边界结点Taylor展开的方式,《数值传热学》4.3.2小节给出了另一种方法,即设置边界外的辅助结点,此处不再展开。
1.4.3. Robin
类似地,令边界结点1既满足控制方程又满足边界条件。对上式移项可得
同样代入和
的Taylor展开,
消去三阶导数项并移项可得
其中
1.5. 组建矩阵
有了内部结点的离散格式和边界条件,我们便可对每个结点列方程。由于结点离散格式中势必会包含其他结点信息,例如对结点
将所有结点的方程组合起来,借助矩阵运算求解。
2. FDM求解泊松方程:二维问题
二维Poisson方程:
如果,则退化为Laplace方程。二阶偏导数项同样使用Taylor展开,只不过针对该问题应使用二维展开。如果使用正交网格结点,则相当于在每一维独自做Taylor展开。
按下图所示,网格结点可分为内部结点和边界结点。
2.1. 内部结点控制方程
由上文公式(2)可知,两个二阶偏导数项可分别写为
去掉高阶项,可得内部结点控制方程
2.2. 下边界
Robin边界条件
对于下边界的某个非边角结点,其中
,根据公式(7)来构建既满足边界条件又满足内部结点控制方程的离散格式,即公式(7)
而下边界上的二阶偏导数项仍按照公式(9)离散。因此,下边界结点的控制方程由公式(9)和(12)组成。
2.3. 右边界
Neumann边界条件
使用公式(6)得到的二阶偏导数项,即
而的二阶偏导数项仍用公式(10)。右下角的结点
应同时满足Robin和Neumann边界条件,该结点的
偏导数项应使用公式(13),
应使用公式(12)
2.4. 上边界和左边界
Dirichlet边界条件: