有限差分法
在离散化阶段,模型需要转换为具有由节点定义的不同单元的数值网格;请参阅图 1。对于二维问题,i 和 j 将用于水平和垂直方向。

如果您还记得导数的定义:
该方程表示曲线 u(x) 的切线斜率,可以用几何方式表示,如图 2 所示。

现在,假设我们已知 xi、xi+1 和 xi-1 的值,那么有三种方式可以求出曲线斜率。
后向差分,使用 xi 和 xi-1。
前向差分,使用 xi 和 xi+1。
中心差分,使用 xi+1 和 xi-1。
如果我们假设
是两个连续节点之间的差,那么
的值越小,我们得到的斜率值就越准确。
对于均匀网格,其中每个节点的
相同,则基于
后向差分:
前向差分:
中心差分:
现在,如果您使用泰勒级数展开后向差分导数,则
考虑函数 u(x) 及其在点 x 处的导数,

如果 u(x +
) 在 u(x) 附近展开为泰勒级数,我们得到

如果我们将此值代入导数方程,则

基于此方程,我们可以将 u 在 i+1 和 i-1 处的泰勒级数写为:

重写上述两个方程,我们得到:
前向差分:
后向差分:
中心差分:
请注意,中心差分取 delta x 的二阶导数,因此误差值比前向或后向差分更小。例如,如果前向或后向差分给出 0.001 的误差,那么二阶导数将为 0.001 x 0.001,即 0.000001。这个误差值要小得多。
您可以在专门介绍有限差分法和求解技术的书籍中进一步了解这些方法。
