有限差分法 (FDM)
字数 2122 2025-12-13 22:21:43
有限差分法 (FDM)
- 核心思想与起源
有限差分法的基本思想是用离散的、有限的差值来近似表示连续函数的导数。其数学根源可以追溯到微积分中的导数定义。回想一下,一个函数 \(f(x)\) 在点 \(x_0\) 处的一阶导数定义为:
\[ f'(x_0) = \lim_{\Delta x \to 0} \frac{f(x_0 + \Delta x) - f(x_0)}{\Delta x} \]
有限差分法正是摒弃了这个极限过程,直接用一个很小的、但不为零的步长 $h$(也称为网格间距)来构造比值,从而用简单的代数运算代替复杂的微分运算。
- 差商近似:构建基本模块
这是有限差分法的基石。对于一阶导数,有三种最基本的近似:- 前向差分: \(f'(x_i) \approx \frac{f(x_{i+1}) - f(x_i)}{h}\)
- 后向差分: \(f'(x_i) \approx \frac{f(x_i) - f(x_{i-1})}{h}\)
- 中心差分: \(f'(x_i) \approx \frac{f(x_{i+1}) - f(x_{i-1})}{2h}\)
其中,\(x_i\) 是离散网格点,\(h = x_{i+1} - x_i\)。中心差分的精度(截断误差为 \(O(h^2)\))通常高于前后差分(截断误差为 \(O(h)\))。对于二阶导数,最常用的近似是:
\[ f''(x_i) \approx \frac{f(x_{i+1}) - 2f(x_i) + f(x_{i-1})}{h^2} \]
其精度为 $O(h^2)$,可以通过对泰勒级数展开式进行组合推导出来。
- 应用于微分方程:从连续到离散
以最简单的一维稳态热传导方程(泊松方程)为例:
\[ \frac{d^2 u}{dx^2} = f(x), \quad 0 < x < L \]
并给定边界条件 $u(0)=A, u(L)=B$。
* **步骤一:区域离散化**。将区间 $[0, L]$ 用 $N+1$ 个等距点划分: $x_0=0, x_1=h, x_2=2h, ..., x_N=L$,其中 $h = L/N$。
* **步骤二:方程离散化**。在每一个内部节点 $x_i (i=1,2,...,N-1)$ 上,用第二步中的二阶中心差分公式替换方程中的二阶导数:
\[ \frac{u(x_{i+1}) - 2u(x_i) + u(x_{i-1})}{h^2} = f(x_i) \]
* **步骤三:建立代数方程组**。将离散方程写为:
\[ u_{i-1} - 2u_i + u_{i+1} = h^2 f_i \]
其中 $u_i$ 是 $u(x_i)$ 的近似值,$f_i = f(x_i)$。对每个内部节点列出此方程,并结合已知的边界值 $u_0 = A, u_N = B$,我们就得到了一个关于未知数 $(u_1, u_2, ..., u_{N-1})$ 的线性方程组。这个方程组的系数矩阵是三对角矩阵。
-
求解与误差分析
- 求解:对于上述一维问题产生的三对角方程组,存在高效、稳定的专门算法,如托马斯算法(追赶法),其计算复杂度仅为 \(O(N)\)。对于更高维(二维、三维)问题离散后产生的大型稀疏线性方程组,则需要使用迭代法(如雅可比迭代、高斯-赛德尔迭代、共轭梯度法)或直接法求解。
- 误差来源:
- 截断误差:用差商代替导数时舍去泰勒级数高阶项所产生的误差,与步长 \(h\) 的幂次相关。
- 舍入误差:计算机浮点数运算精度限制带来的误差。
- 收敛性:当网格不断加密(\(h \to 0\))时,数值解是否趋于真实解。
- 稳定性:在计算过程中,初始条件或中间步骤的微小误差是否会被不断放大。
-
进阶概念与扩展
- 时间相关问题:对于包含时间导数的偏微分方程(如热传导方程、波动方程),需要对时间维度也进行离散。这引入了时间推进格式的选择问题,如显式欧拉法(条件稳定)、隐式欧拉法(无条件稳定但耗散大)、以及精度和稳定性更好的克兰克-尼科尔森格式等。
- 高维问题:对于二维区域(如矩形),可以构造二维网格(\(x_i, y_j\)),并用类似方法离散拉普拉斯算子 \(\nabla^2 u = \frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2}\),这会生成一个带宽更宽的稀疏线性系统。
- 非均匀网格与曲线坐标系:对于解变化剧烈的区域,需要使用非均匀网格(局部加密)。在复杂几何形状下,可能需要将物理域变换到计算域(曲线坐标系),并在计算域上应用FDM。
- 与其它方法比较:FDM概念直观、实现简单,特别适合规则区域(如矩形、长方体)。但对于复杂几何边界,其处理能力不如有限元方法灵活。FDM直接近似方程,而谱方法则用全局光滑函数(如三角函数、切比雪夫多项式)来逼近解,在区域光滑时能达到极高的精度(谱精度)。