例 2.66 中得到的两个估计值的困难之处在于,我们不知道答案的精确程度。它们精确到小数点后 4 位、3 位还是更少?答案中误差的大小取决于函数的曲率。因为任何线性插值公式按定义都是一条直线,所以它无法反映它试图建模的函数的曲率。为了模拟曲率,需要一条抛物线,即二次插值函数。二次插值公式与线性公式之间的差将给我们一个衡量线性公式精确度的度量。我们有
$$\text{function value} = \text{linear interpolation value} + C_1$$
以及
$$\text{function value} = \text{quadratic interpolation value} + C_2$$
其中理想情况下 $C_2$ 远小于 $C_1$ 。将这两个方程相减,我们看到
$$C_1 \approx \text{quadratic interpolation value} - \text{linear interpolation value}$$
现在要确定一个二次函数,我们需要三个点。利用前面得到的公式 (2.11),我们看到经过 $(x_i, f_i)$ , $(x_{i+1}, f_{i+1})$ 和 $(x_{i+2}, f_{i+2})$ 的二次函数可以表示为
$$p(x) = \frac{(x - x_{i+1})(x - x_{i+2})f_i}{(x_i - x_{i+1})(x_i - x_{i+2})} + \frac{(x - x_i)(x - x_{i+2})f_{i+1}}{(x_{i+1} - x_i)(x_{i+1} - x_{i+2})} \ + \frac{(x - x_i)(x - x_{i+1})f_{i+2}}{(x_{i+2} - x_i)(x_{i+2} - x_{i+1})}$$
当数据点等距时,我们可以通过记住 $p(x)$ 来简化 $x_{i+2} = x_i + 2h$ , $x_{i+1} = x_i + h$ 以及 $x = x_i + \theta h$ ,其中 $0 \leq \theta \leq 1$ ,得到
$$p(x) = \frac{(\theta - 1)(\theta - 2)}{2} f_i - \frac{\theta(\theta - 2)}{1} f_{i+1} + \frac{\theta(\theta - 1)}{2} f_{i+2}$$
这个公式看起来与线性插值公式截然不同,令人望而生畏,但经过一些整理后,我们得到
$$p(x) = [f_i + \theta(f_{i+1} - f_i)] + \frac{1}{2}\theta(\theta - 1)(f_{i+2} - 2f_{i+1} + f_i) \ = [f_i + \theta\Delta f_i] + \frac{1}{2}\theta(\theta - 1)(\Delta f_{i+1} - \Delta f_i)$$
其中 $0 < \theta < 1$ 。这里方括号中的项是 $f(x)$ 的线性插值近似,因此
$$\frac{1}{2}\theta(\theta - 1)(\Delta f_{i+1} - \Delta f_i)$$
是对该近似的二次修正(记住:加入修正是为了消除误差)。注意,这涉及两个相邻差分的差,因此我们可以将其写为 $\frac{1}{2}\theta(\theta - 1)\Delta^2 f_i$ ,其中 $\Delta^2 f_i = \Delta(\Delta f_i) = \Delta f_{i+1} - \Delta f_i$ .