差分

差分，又名差分函数或差分运算，一般是指有限差分（Finite difference），是数学中的一个概念，将原函数 $f(x)$ 映射到 $f(x+a)-f(x+b)$。差分运算，相应于微分运算，是微积分中重要的一个概念。

## 定义

差分分为前向差分和逆向差分。

### 前向差分

函数的前向差分通常简称为函数的差分。对于函数$\ f(x)$，如果在等距节点：

$$x_k = x_0 + kh, (k = 0,1,...,n)$$

$$\ \Delta f(x_k)=f(x_{k+1})-f(x_k)$$

则称$\ \Delta f(x)$，函数在每个小区间上的增量$y_{k+1} - y_k$为$\ f(x)$一阶差分。

在微积分学中的有限差分（finite differences），前向差分通常是微分在离散的函数中的等效运算。差分方程的解法也与微分方程的解法相似。当$\ f(x)$是多项式时，前向差分为Delta算子（称$\Delta$为差分算子），一种线性算子。前向差分会将多项式阶数降低 1。

### 逆向差分

对于函数$\ f(x_k)$，如果：

$$\ \nabla f(x_k)=f(x_k)-f(x_{k-1}).\,$$

则称$\ \nabla f(x_k)$为$\ f(x)$的一阶逆向差分。

## 差分的阶

一阶差分的差分为二阶差分，二阶差分的差分为三阶差分，其余类推。记：

$\ \Delta^n [f](x)$为$\ f(x)$的$\ n$阶差分。

如果

$\ \Delta^n [f](x)$｜$\ = \Delta \{ \Delta^{n-1} [f](x) \}$

$$\ = \Delta^{n-1} [f](x+1) - \Delta^{n-1} [f](x)$$

根据数学归纳法，有

$$\ \Delta^n [f](x) = \sum_{i=0}^n {n \choose i} (-1)^{n-i} f(x+i)$$

其中，$\ {n \choose i}$为二项式系数。

特别的，有

$$\ \Delta^2 [f](x) = f(x+2) - 2f(x+1) + f(x)$$

前向差分有时候也称作数列的二项式变换

## 差分的性质

对比解析函数中的微分的属性，差分的性质有：

- 如果C为常数，则有

$$\Delta C=0$$

- 线性：如果 $\ a$ 和 $\ b$ 为常数，则有

$$\Delta (af+bg) = a \Delta f + b \Delta g$$

$$\Delta (fg) = f \Delta g + g \Delta f + \Delta f \Delta g$$

$$\nabla (f g) = f \nabla g + g \nabla f - \nabla f \nabla g$$

$$\nabla \left( \frac{f}{g} \right) = \frac{1}{g} \det \begin{bmatrix} \nabla f & \nabla g \\ f & g \end{bmatrix} \det {\begin{bmatrix} g & \nabla g \\ 1 & 1 \end{bmatrix}}^{-1}$$

$$\Delta \left( \dfrac{f}{g} \right) = \dfrac{1}{g} \det \begin{bmatrix} \Delta f & \Delta g \\ f & g \end{bmatrix} \det {\begin{bmatrix} g & \Delta g \\ -1 & 1 \end{bmatrix}}^{-1}$$

或

$$\nabla\left( \frac{f}{g} \right)= \frac {g \nabla f - f \nabla g}{g \cdot (g - \nabla g)}$$

$$\Delta\left( \frac{f}{g} \right)= \frac {g \Delta f - f \Delta g}{g \cdot (g + \Delta g)}$$

$$\sum_{n=a}^{b} \Delta f(n) = f(b+1)-f(a)$$

$$\sum_{n=a}^{b} \nabla f(n) = f(b)-f(a-1)$$

## 牛顿级数

<image>

牛顿插值公式也叫做牛顿级数，由“牛顿前向差分方程”的项组成，得名于伊萨克·牛顿爵士，最早发表为他在1687年出版的《自然哲学的数学原理》中第三编“宇宙体系”的引理五，此前詹姆斯·格雷果里于1670年和牛顿于1676年已经分别独立得出这个成果。一般称其为连续泰勒展开的离散对应。

### 单位步长情况

当$x$值间隔为单位步长$1$时，有：

$$\begin{align} f(x) &= f(a) + \frac {x-a} {1} \left[\Delta^1 [f](a) + \frac {x-a-1} {2}\left( \Delta^2 [f](a) + \cdots \right) \right] \\ <pre> &= f(a) + \sum_{k=1}^n \Delta^k [f](a) \prod_{i=1}^{k} \frac{[(x-a)-i+1]}{i} \\ &= \sum_{k=0}^n {x-a \choose k}~ \Delta^k [f](a) \\ </pre> \end{align}$$

这成立于任何多项式函数和大多数但非全部解析函数。这里的表达式

$${x \choose k} = \frac{(x)_k}{k!} \quad\quad (x)_k=x(x-1)(x-2)\cdots(x-k+1)$$

是二项式系数，其中的$(x)_k$是“下降阶乘幂”(另一种常见的标记法为$x^\underline{k}$)，空积$(x)_0$被定义为$1$。这里的$\Delta_k\left[f\right](x)$是“前向差分”的特定情况，即间距$h=1$。

### 实例

为了展示牛顿的这个公式是如何使用的，举例数列 1, 4, 9,16...的前几项，可以找到一个多项式重新生成这些值，首先计算一个差分表，接着将对应于x0（标示了下划线）的这些差分代换入公式。

$$\begin{matrix} \begin{array}{|c||c|c|c|c|} \hline <pre> x & \Delta^0 & \Delta^1 & \Delta^2 & \Delta^3 \\ </pre> \hline 1&\underline{1}& & &\\ <pre> & &\underline{3}& &\\ </pre> 2&4& &\underline{2} &\\ <pre> & &5& &\underline{0}\\ </pre> 3&9& &2 &\\ <pre> & &7& &\\ </pre> 4&16& & &\\ \hline \end{array} & \quad \begin{align} f(x)&=\Delta^0 +\Delta^1 \dfrac{(x-x_0)}{1!} + \Delta^2\dfrac{(x-x_0)(x-x_0-1)}{2!} \quad (x_0=1)\\ &=1 + 3 \cdot \dfrac{x-1}{1} + 2 \cdot \dfrac{(x-1)(x-2)}{2} \\ &=1 + 3(x-1) + (x-1)(x-2) \\ &=x^2 \end{align} \end{matrix}$$

### 一般情况

对于x值间隔为非一致步长的情况，牛顿计算均差，在间隔一致但非单位量时，即上述前向差分的一般情况，插值公式为：

$$\begin{align} f(x) &= f(a) + \frac {x-a} {h} \left[ \Delta_h^1[f](a) + \frac {x-a-h} {2h}\left(\Delta_h^2[f](a) + \cdots \right) \right] \\ <pre> &= f(a) + \sum_{k=1}^n \frac{\Delta_h^k[f](a)}{k!h^k} \prod_{i=0}^{k-1} [(x-a)-ih] \\ &=f(a) + \sum_{k=1}^n \frac{\Delta_h^k[f](a)}{k!} \prod_{i=0}^{k-1} \left(\frac{x-a}{h}-i\right) </pre> \end{align}$$

在最终公式中hk被消去掉了，对于非一致步长的情况则不会出现阶乘。