有限差分法是数值分析中用于近似导数和求解微分方程的一类方法。它用离散点上函数值的加权差替代连续微分算子,这些离散点通常排列在计算网格上。由此得到的方程用于确定未知函数在这些点上的数值近似。有限差分法既适用于常微分方程,也适用于偏微分方程,包括涉及扩散、输运、波动和平衡场的问题。(damtp.cam.ac.uk)
基本构造
设 是一个足够光滑的函数,在均匀网格
上取样,其中 为网格间距。用 表示精确采样值 ,或在求解方程时表示其数值近似。一阶导数最简单的近似公式为
前向差分和后向差分的截断误差为一阶,即 ;中心差分的误差为二阶,即 。这里的大O记号描述了在适当的光滑性假设下,误差随 趋于零而变化的量级。(damtp.cam.ac.uk)
这些公式可由泰勒级数展开推导。例如,
将两式相减,偶次幂项相互抵消,便得到一阶导数的中心差分公式。将两式相加,则得到标准的二阶导数近似公式:
因此,利用对称性可以消去主导误差项,而不必额外计算函数值。(tsapps.nist.gov)
差分公式所用的点及其系数构成的集合称为**差分模板**。更一般的公式具有如下形式:
其中,权重取决于导数阶数、求值点和节点位置。公式中的节点不必等距。Bengt Fornberg 于 1988 年提出的算法提供了一套递推过程,可针对任意一维节点分布和导数阶数生成权重。(ams.org)
边值问题的离散化
对于边值问题,有限差分法在内部网格点处用差分方程替代微分方程,同时通过单独的方程施加边界条件。考虑
并给定两端点的函数值。在均匀网格上,内部点的方程变为
将端点值移入右端项后,这些方程构成一个线性方程组 。每一行只耦合相邻的未知量,因此 是三对角稀疏矩阵。(ocw.mit.edu)
在二维情形下,正方形网格上拉普拉斯算子的标准近似为
对于光滑函数,这个五点模板具有二阶精度。将其用于泊松方程 ,可得到一个稀疏方程组,其系数反映了网格的连接关系和边界条件。(dlmf.nist.gov)
边界处理是数值方法的组成部分,而不只是实现细节。狄利克雷条件指定函数值;诺伊曼条件指定法向导数;罗宾条件则指定两者的组合。可以采用单边差分,或在物理区域之外引入称为虚点的辅助点,为边界附近的点建立方程。曲线边界和界面可能需要修改差分模板或延拓解;这些构造必须保持预期的精度和稳定性。(arxiv.org)
含时方程
含时问题可以同时对空间和时间进行离散化,也可以先只对空间离散化。后一种方法称为**线法**,它将偏微分方程转化为常微分方程组,再用时间积分方法求解。(damtp.cam.ac.uk)
对于一维热方程
令 近似 ,其中 ,并定义
采用时间前向差分和空间中心差分,可得
这一显式格式直接根据已知值计算下一时间层的值。对于标准的均匀网格问题,当 时,该格式稳定。其截断误差为 。因此,加密空间网格时,时间步长必须按 的比例缩小,或取得更小。(damtp.cam.ac.uk)
若改用时间后向差分,则得到隐式格式
每个时间步都需要求解一个耦合方程组。对于这一线性扩散问题,后向欧拉法无条件稳定,即稳定性不对 施加上限。不过,精度要求仍会限制实际可用的时间步长。(damtp.cam.ac.uk)
**克兰克–尼科尔森法**对旧时间层和新时间层的空间算子取平均:
对于光滑解,该方法在时间和空间上均具有二阶精度,并且对标准线性热方程无条件稳定。不过,稳定性并不保证强阻尼:对于刚性足够强的空间模态,其放大因子趋近于 ,因此较大的时间步长可能产生衰减缓慢、正负交替的数值分量。(math.mit.edu)
相容性、稳定性与收敛性
差分格式的分析主要围绕以下三个性质展开:
- **相容性:**将光滑的精确解代入离散方程后,所产生的残差随离散尺度细化而趋于零。
- **数值稳定性:**离散数据或计算中间过程中的扰动始终受到控制,且其界在相关的细化过程中保持一致。
- **收敛性:**随着离散尺度细化,数值解在指定范数下趋近于精确解。
**拉克斯–里希特迈尔等价定理**将这些性质联系起来:对于适定线性初值问题的相容线性近似,在满足该定理假设的条件下,稳定性与收敛性等价。该定理并不能为非线性方程或任意边界处理提供普遍保证。(epubs.siam.org)
冯·诺伊曼分析研究差分格式对各个傅里叶级数模态的放大作用。对于热方程的显式格式,代入
可得
要求所有频率都满足 ,便得到 。这种分析对无限网格或周期网格上的常系数问题尤其有用;对于物理边界,还需作进一步考察。(math.mit.edu)
对于传播问题,**柯朗–弗里德里希斯–列维条件**将数值依赖域与微分方程的依赖域联系起来。例如,方程 的标准中心差分格式具有如下稳定性限制:
CFL 限制取决于所用格式,仅满足依赖域条件,并不能证明稳定性或收敛性所需的其他条件也都成立。(damtp.cam.ac.uk)
精度与数值局限
差分模板的形式阶数针对的是光滑函数及其局部近似误差。计算解中实际观察到的误差还取决于边界离散化、解的正则性、时间积分以及代数方程求解器的精度。因此,仅有高阶内部模板,并不足以证明整个方法具有高阶收敛性。(epubs.siam.org)
网格细化也会受到浮点运算的限制。数值微分将邻近的函数值相减,再除以较小的间距,这可能放大相消造成的误差和函数求值误差。对于精度为 阶的一阶导数公式,一个简化的误差模型为
其中 表示浮点误差的尺度。这个模型解释了为何无限减小 并不一定能改善导数估计。(tsapps.nist.gov)
输运方程还带来一些额外困难。迎风差分考虑了传播方向,但可能引入人工扩散;其他格式则可能产生相位误差或振荡。当解中包含激波或陡峭的波前时,针对光滑解的误差估计并不充分,可能需要专门的通量形式、限制器或非线性重构。(damtp.cam.ac.uk)
应用及与其他方法的关系
有限差分法用于近似求解描述扩散、波传播、流体流动和电磁场的方程。其局部模板在结构化网格上尤为方便。在图像处理中,差分用于近似图像梯度,而离散泊松方程则用于根据指定或修改后的梯度场重建图像。(math.mit.edu)
有限差分法不同于**有限元法和有限体积法**:前者通常使用定义在网格单元上的函数,对弱形式或变分形式进行近似;后者则在控制体积上建立通量平衡。这些区别涉及离散化的推导方式和解释:在简单网格上,不同方法可能产生相同或密切相关的代数方程。有限体积形式显式体现了局部守恒,而有限差分格式则必须经过适当构造,才能保持这一性质。(math.mit.edu)
历史发展
有限差分理论的一项重要基础,是理查德·柯朗、库尔特·弗里德里希斯和汉斯·列维于 1928 年发表的关于数学物理中偏差分方程的论文。该论文研究了微分方程的离散近似,并确立了与 CFL 条件相关的依赖域原理。此后的发展通过拉克斯–里希特迈尔框架将相容性、稳定性和收敛性联系起来,并将差分公式推广到更高阶和非均匀网格;Fornberg 于 1988 年的工作则提供了一种生成数值微分权重的系统算法。(web.stanford.edu)
参考来源
- Course 18.336: Numerical Methods for Partial Differential Equationsmath.mit.edu
- DLMF: §3.4 Differentiationdlmf.nist.gov
- Numerical Differentiationtsapps.nist.gov
- Generation of Finite Difference Formulas on Arbitrarily Spaced Gridsams.org
- Finite Differences and Fast Poisson Solversocw.mit.edu
- A Finite Difference Ghost-Cell Multigrid Approach for Poisson Equation with Mixed Boundary Conditions in Arbitrary Domainarxiv.org
- High-Order Finite-Difference Discretization for Elliptic Problems on Complex Domainsmath.mit.edu
- The Heat Equation and Convection-Diffusionmath.mit.edu