小龙的数学手记MATH, CODE & LITTLE DISCOVERIES
← 返回数学手记
科学计算

有限差分:用离散理解连续

把导数变成相邻网格点之间的关系,迈出偏微分方程数值求解的第一步。

2026-09-15 · 6 分钟阅读 · 示例手记

网格上的导数

在均匀网格 xi=ihx_i=ih 上,我们可以用函数值的差来近似导数。中心差分的形式是:

f(xi)f(xi+h)f(xih)2h.f'(x_i)\approx\frac{f(x_i+h)-f(x_i-h)}{2h}.

若函数足够光滑,Taylor 展开表明这个近似的截断误差为 O(h2)O(h^2)

二阶导数

把两侧的 Taylor 展开相加,得到:

f(xi)f(xih)2f(xi)+f(xi+h)h2.f''(x_i)\approx\frac{f(x_i-h)-2f(x_i)+f(x_i+h)}{h^2}.

由此,微分方程可以转化为网格上未知函数值构成的代数方程组。边界条件决定了方程组边缘处如何处理。

网格越细就越好吗?

截断误差通常随网格尺度缩小而减小,但浮点舍入误差也会参与计算。对数值求导而言,过小的步长可能放大相减造成的误差。

可以从 f(x)=sinxf(x)=\sin x 开始,比较多个步长下的差分结果与解析导数 cosx\cos x,观察误差曲线。

一个可复现的实验清单

  • 写清楚函数、区间与边界条件。
  • 记录网格点数与步长。
  • 比较解析解与数值解。
  • 用多个网格验证误差变化规律。

公式的价值,最终要在可检验的计算中体现。