非等距节点插值型数值微分的高精度构造与误差分析
题目描述:
给定函数 \(f(x)\) 在节点 \(x_0, x_1, x_2\) 上的值(节点间距可任意,不要求等距),构造一个数值微分公式来近似计算 \(f'(x)\) 在 \(x_1\) 处的一阶导数,并给出其截断误差表达式。这个公式需要满足尽可能高的精度阶数,并分析节点非等距对误差的影响。
解题过程:
第一步:理解问题目标
我们已知函数在三个节点 \(x_0, x_1, x_2\) 上的函数值 \(f_0, f_1, f_2\),节点位置满足 \(x_0 < x_1 < x_2\),但间距 \(h_1 = x_1 - x_0\) 和 \(h_2 = x_2 - x_1\) 可以不相等。目标是构造一个公式 \(f'(x_1) \approx a f_0 + b f_1 + c f_2\),其中系数 \(a, b, c\) 由节点位置决定,使公式在 \(x_1\) 处具有尽可能高的精度阶数,并给出误差表达式。
第二步:基于多项式插值构造数值微分公式
- 在三个节点上构造二次拉格朗日插值多项式 \(P_2(x)\):
\[ P_2(x) = f_0 L_0(x) + f_1 L_1(x) + f_2 L_2(x) \]
其中拉格朗日基函数为:
\[ L_0(x) = \frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)},\quad L_1(x) = \frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)},\quad L_2(x) = \frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}. \]
- 对 \(P_2(x)\) 求导,并在 \(x = x_1\) 处取值,得到导数近似:
\[ f'(x_1) \approx P_2'(x_1) = f_0 L_0'(x_1) + f_1 L_1'(x_1) + f_2 L_2'(x_1). \]
- 计算基函数在 \(x_1\) 处的导数:
- 对 \(L_0(x)\) 求导:
\[ L_0'(x) = \frac{(x-x_2)+(x-x_1)}{(x_0-x_1)(x_0-x_2)}. \]
代入 $ x = x_1 $ 得:
\[ L_0'(x_1) = \frac{x_1 - x_2}{(x_0-x_1)(x_0-x_2)} = \frac{-h_2}{(-h_1)(-h_1-h_2)} = -\frac{h_2}{h_1(h_1+h_2)}. \]
- 对 \(L_1(x)\) 求导:
\[ L_1'(x) = \frac{(x-x_2)+(x-x_0)}{(x_1-x_0)(x_1-x_2)}. \]
代入 $ x = x_1 $ 得:
\[ L_1'(x_1) = \frac{(x_1-x_2)+(x_1-x_0)}{h_1 (-h_2)} = \frac{-h_2 + h_1}{h_1(-h_2)} = \frac{h_1-h_2}{h_1 h_2}. \]
- 对 \(L_2(x)\) 求导:
\[ L_2'(x) = \frac{(x-x_1)+(x-x_0)}{(x_2-x_0)(x_2-x_1)}. \]
代入 $ x = x_1 $ 得:
\[ L_2'(x_1) = \frac{(x_1-x_1)+(x_1-x_0)}{(h_1+h_2)h_2} = \frac{h_1}{h_2(h_1+h_2)}. \]
- 得到数值微分公式:
\[ f'(x_1) \approx -\frac{h_2}{h_1(h_1+h_2)} f_0 + \frac{h_1-h_2}{h_1 h_2} f_1 + \frac{h_1}{h_2(h_1+h_2)} f_2. \]
当 \(h_1 = h_2 = h\)(等距时),公式退化为经典的三点中心差分公式:
\[ f'(x_1) \approx \frac{f_2 - f_0}{2h}. \]
第三步:推导截断误差表达式
- 插值误差公式:若 \(f(x) \in C^3[x_0, x_2]\),则插值余项为:
\[ f(x) - P_2(x) = \frac{f'''(\xi_x)}{3!} (x-x_0)(x-x_1)(x-x_2), \quad \xi_x \in (x_0, x_2). \]
- 对上式求导,并令 \(x = x_1\):
\[ f'(x_1) - P_2'(x_1) = \frac{1}{6} \frac{d}{dx}\left[ (x-x_0)(x-x_1)(x-x_2) f'''(\xi_x) \right]_{x=x_1}. \]
注意 \(\xi_x\) 也依赖于 \(x\),因此求导需用乘积法则。但根据数值微分误差分析的标准技巧,可固定 \(\xi = \xi_{x_1} \in (x_0, x_2)\),将余项视为 \(f'''(\xi)\) 乘以一个函数 \(g(x) = (x-x_0)(x-x_1)(x-x_2)\),再对 \(g(x)\) 求导。因为当 \(x = x_1\) 时,\(g(x_1)=0\),但 \(g'(x_1) \neq 0\)。
3. 计算 \(g'(x_1)\):
\[ g'(x) = (x-x_1)(x-x_2) + (x-x_0)(x-x_2) + (x-x_0)(x-x_1). \]
代入 \(x = x_1\) 得:
\[ g'(x_1) = 0 + (h_1)(-h_2) + 0 = -h_1 h_2. \]
- 因此截断误差为:
\[ f'(x_1) - P_2'(x_1) = \frac{f'''(\xi)}{6} \cdot (-h_1 h_2) = -\frac{h_1 h_2}{6} f'''(\xi), \quad \xi \in (x_0, x_2). \]
- 误差的阶:当 \(h_1, h_2 \to 0\) 时,误差为 \(O(h^2)\)(若 \(h_1, h_2\) 同阶)。特别地,等距时 \(h_1 = h_2 = h\),误差为 \(-\frac{h^2}{6} f'''(\xi)\),与经典三点中心差分误差一致。
第四步:分析节点非等距的影响
- 精度阶数:无论节点是否等距,只要 \(h_1\) 和 \(h_2\) 同阶趋于零,误差均为二阶精度(\(O(h^2)\))。
- 误差系数:误差系数 \(-\frac{h_1 h_2}{6}\) 表明,当 \(h_1\) 和 \(h_2\) 不等时,误差由两者乘积决定。若一侧间距显著大于另一侧(例如 \(h_1 \gg h_2\)),则误差主要由较小间距的平方主导,但系数可能不对称。
- 稳定性考虑:在非等距情况下,公式系数可能数量级差异大,若节点间距相差悬殊,舍入误差可能被放大(例如除小间距导致大系数)。在实际应用中,应避免节点间距比例过大,以保持数值稳定性。
总结:
我们构造了适用于非等距节点的三点数值微分公式,具有二阶精度,并给出了截断误差表达式。该公式是等距三点中心差分的推广,可用于处理不规则分布的数据点导数估计。