如何找到导数的最佳有限差分法?

计算科学 有限差分 误差估计 准确性
2021-12-11 04:41:08

相关:使用高阶有限差分方案有什么负面影响?

问题:我有一些轨迹的离散数据xt有错误δxt在相同时间采样的物理系统Δt我想计算轨迹的导数,即速度vt.

我知道我可以使用有限差分法对它进行数值区分。从公式来看,高阶方法似乎更准确,因为它的理论误差更低。但是,我相信函数在给定点的导数应该只取决于该点的局部区域。如果我们使用高阶有限差分方案获取更多远离的点,我觉得我们会增加导数的误差。

问题:这个推理正确吗?如果是这样,如何平衡这两个问题以找到特定情况下的最佳方案?


根据 Superbee 的回答,我想到了一种解决问题的方法:

  1. 比较采样分离Δt随着数据的变化Δx. 为了使用更高阶的方法,您需要及时采样远小于数据的变化。但是,要比较不同的变量,您应该删除它们的单位。我们可以粗略地对特征长度进行归一化:LT, 为了xt分别。这些长度可以定义为变量的平均值。然后,要使用更高阶的方法,我们需要:

    ΔtTΔxL.
    如果我们怀疑这是否得到满足,我们宁愿选择较低的订单。

  2. 如果我们不考虑龙格现象,在情况 1. 满足的情况下,我们可以毫无问题地使用高阶方法。但是,如果理论上的错误,使用高阶方法不会有任何好处ε有限差分法的误差低于来自您的数据的误差δ

    • ε通常取决于函数的导数(我们可以用数值估计)和给定的幂Δt.

    • δ来自误差的传播δxt到有限差分法。我们可以使用典型的误差传播公式从有限差分法的形式估计这一点

      δy=i(yxi)2

    从这两个误差中,我们还可以估计导数的实际误差。

这种方法看起来不错吗?

1个回答

有限差分方案的选择取决于几个因素,例如数据的平滑度、数据实际的均匀间隔等。您可能还需要考虑您的速度估计实际需要多准确。例如,如果轨迹中有很大的误差线,那么使用高阶方法然后声称速度也精确到高阶可能没有什么意义。

其他考虑因素包括龙格现象、高阶方法增加的计算成本(由于需要对更多网格点进行采样)以及使用非常宽的有限差分模板时在边界处出现的复杂性。

总之,我认为没有单一的最佳选择。很大程度上取决于您的数据。

根据评论进行编辑:

我将如何解决这个问题可能甚至根本不使用有限差分。以我的经验,有限差分主要用于求解微分方程,而不是事后计算离散实验数据的导数。如果您正在求解微分方程,那么您的优势在于能够用不同的方法求解h并明确检查收敛性,但是对于您的问题,您不一定具有这些优势来验证有限差分方案的“合理性”,因此很难说任何给定的选择是否足够。

当然可以使用有限差分,并且编辑中的方法可能不是不合理的,但我对此类问题的直觉是将曲线拟合到数据然后只是区分它(例如,使用多项式插值,然后多项式微分)。这可能是处理数据中许多潜在问题的最简单方法:噪声(因此缺乏平滑度)、步长不均匀、如何处理误差线、数据中的不同长度尺度等.