# 泰勒展开、一元多元对应与余项

[[MCS/day6/00 学习指南|day6 学习指南]] · [[MCS/00 MCS学习总览|十一天总览]] · [[MCS/day6/阅读核验与疑问|阅读核验与疑问]] · 下一篇：[[MCS/day6/02 从切线近似到牛顿求根|从切线近似到牛顿求根]]

> 来源：[[MCS/day6泰勒展开与近似|day6泰勒展开与近似]]。用途：主线。原有推导、追问与解答保留；阅读时请结合本日核验说明。

泰勒展开与近似
任何一个光滑的函数都可以用展开式逼近
$$f\left( x \right) =f\left( x_0 \right) +f\prime \left( x_0 \right) \left( x-x_0 \right) +\frac{f\prime \prime \left( x_0 \right)}{2!}\left( x-x_0 \right) ^2+\cdots +\frac{f^{\left( n \right)}\left( x_0 \right)}{n!}\left( x-x_0 \right) ^n+R_n\left( x \right) 
\\
=f\left( x_0 \right) +\sum_{k=1}^n{\frac{f^{\left( k \right)}\left( x_0 \right)}{k!}\left( x-x_0 \right) ^k}+R_n\left( x \right) $$

直到麦克劳林 《流数论》，简化了版本
把点在 x=0 处展开（即 x 0=0），则为麦克劳林展开
牛顿《级数算》 $\frac{1}{(1+x)}$ 本质：泰勒展开
早了 46 年

往往世界数学就是这样，先有思想（牛顿），再有理论（泰勒），最后简化普及（麦克劳林））
CPU 不认识 sin，所以用多项式函数去逼近，
超越函数：不能只用有限次结合（是变量之间的关系不能用有限次加、减、乘、除、乘方、开方运算表示的函数。） 如指数函数、对数函数、三角函数、反三角函数
能够：代数函数，如多项式函数

sinx 的泰勒展开:

$x^x$:超越函数

python 中实现计算器：match...case/字典 lambda/eval 函数，但是 eval 的缺点？

分词 做优先级逻辑处理

计算器：后缀表达式，或者逆波兰表达式

硬件层面：只有加法器

如何减法？补码加法
乘法：移位加法（累加）

除法：迭代（加减交替法）不恢复余数法

任何的超越函数都必须先泰勒展开成多项式

优化算法

business anaylitics

复杂的损失函数无法直接求最小值，但可以转换成泰勒展开（多项式）可以


缺的是复合性能力的学生
当你的产品什么都能做，那么这个产品就没有存在的价值
复合不是交叉
人生永远靠犀利而不是施舍

一阶展开：梯度下降
二阶展开：牛顿法

从切线到抛物线：一阶到二阶近似



## 泰勒展开与优化方法
### 一阶泰勒展开：梯度下降
一阶近似（切线）：以直代曲， 在 x 0 附近
函数 $f(x)$ 在点 $x_k$ 处的一阶泰勒展开为：
$$
f(x) \approx f(x_k) + \nabla f(x_k)^\top (x - x_k)
$$

用直线近似 f

为了下降，取更新方向为负梯度方向：
$$
x_{k+1} = x_k - \eta \nabla f(x_k)
$$
其中 $\eta > 0$ 为学习率（步长）。

---
### 二阶泰勒展开：牛顿法
二阶近似（抛物线）：加上曲率信息，在 x 0 附近：
函数 $f(x)$ 在点 $x_k$ 处的二阶泰勒展开为：
$$
f(x) \approx f(x_k) + \nabla f(x_k)^\top (x - x_k) + \frac{1}{2}(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)
$$
对 $x$ 求导并令其为零：
$$
\nabla f(x_k) + \nabla^2 f(x_k)(x - x_k) = 0
$$
解得牛顿更新公式：
$$
x_{k+1} = x_k - \left[\nabla^2 f(x_k)\right]^{-1} \nabla f(x_k)
$$
其中 $\nabla^2 f(x_k)$ 为 Hessian 矩阵。

用抛物线近似，比直线更贴合曲线，因为多了二阶导数（曲率信息）

---


### 对比
| 方法   | 展开阶数 | 更新公式                                     | 收敛速度 |
| ---- | ---- | ---------------------------------------- | ---- |
| 梯度下降 | 一阶   | $x_{k+1} = x_k - \eta \nabla f(x_k)$     | 线性收敛 |
| 牛顿法  | 二阶   | $x_{k+1} = x_k - H_k^{-1} \nabla f(x_k)$ | 二次收敛 |


## 具体含义

### 对标量函数 $f(x)$

$$
\nabla f = \left(\frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \dots, \frac{\partial f}{\partial x_n}\right)^\top
$$

对多变量标量函数，$\nabla f$ 是梯度向量，即对每个变量分别求偏导后组成的向量。

对单变量函数 $f(x)$，$\nabla f = \frac{df}{dx}$，此时就退化为普通导数。

### 与求导符号的区别

| 符号 | 名称 | 作用对象 | 结果 |
|------|------|----------|------|
| $\frac{d}{dx}$ | 导数 | 单变量函数 | 标量 |
| $\frac{\partial}{\partial x}$ | 偏导 | 多变量函数（固定其他变量） | 标量 |
| $\nabla$ | 梯度 | 多变量标量函数 | 向量 |
| $\nabla^2$ | Hessian | 多变量标量函数 | 矩阵（二阶偏导） |

### 在梯度下降 / 牛顿法中的意义

- $\nabla f(x_k)$：损失函数在当前点的梯度，指向函数增长最快的方向，所以取负号下降。

- $\nabla^2 f(x_k)$：Hessian 矩阵，是二阶偏导组成的矩阵，描述函数的曲率。



## 完整对比：一元 vs 多元泰勒展开


### 一元一阶展开

$$
f(x) \approx f(x_0) + f'(x_0)(x - x_0)
$$

### 多元一阶展开

$$
f(x) \approx f(x_k) + \nabla f(x_k)^\top (x - x_k)
$$

---

## 逐项对应

| 一元 | 多元 | 说明 |
|------|------|------|
| $f(x_0)$ | $f(x_k)$ | 零阶项（函数值） |
| $f'(x_0)$ | $\nabla f(x_k)$ | 导数 → 梯度（向量） |
| $(x - x_0)$ | $(x - x_k)$ | 标量增量 → 向量增量 |
| $f'(x_0)(x - x_0)$ | $\nabla f(x_k)^\top (x - x_k)$ | 数乘 → 内积 |

---

## 为什么多元一阶项写成 $\nabla f(x_k)^\top (x - x_k)$

$\nabla f(x_k)$ 和 $(x - x_k)$ 都是列向量：

$$
\nabla f(x_k) = \begin{pmatrix} \dfrac{\partial f}{\partial x_1} \\ \vdots \\ \dfrac{\partial f}{\partial x_n} \end{pmatrix}, \qquad
x - x_k = \begin{pmatrix} \Delta x_1 \\ \vdots \\ \Delta x_n \end{pmatrix}
$$

两个列向量不能直接相乘，必须把其中一个转置成行向量，才能做内积得到一个标量：

$$
\nabla f(x_k)^\top (x - x_k)
=
\begin{pmatrix} \dfrac{\partial f}{\partial x_1} & \cdots & \dfrac{\partial f}{\partial x_n} \end{pmatrix}
\begin{pmatrix} \Delta x_1 \\ \vdots \\ \Delta x_n \end{pmatrix}
=
\sum_{i=1}^{n} \frac{\partial f}{\partial x_i} \Delta x_i
$$

这个标量正好对应一元里的 $f'(x_0)(x - x_0)$。

---

## 完整泰勒展开对照

| 阶数  | 一元                               | 多元                                                   |
| --- | -------------------------------- | ---------------------------------------------------- |
| 零阶  | $f(x_0)$                         | $f(x_k)$                                             |
| 一阶  | $f'(x_0)(x - x_0)$               | $\nabla f(x_k)^\top (x - x_k)$                       |
| 二阶  | $\frac{1}{2}f''(x_0)(x - x_0)^2$ | $\frac{1}{2}(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)$ |



### 一、一元二阶泰勒展开

$$
f(x) \approx f(x_0) + f'(x_0)(x - x_0) + \frac{1}{2}f''(x_0)(x - x_0)^2
$$

### 二、多元二阶泰勒展开

$$
f(x) \approx f(x_k) + \nabla f(x_k)^\top (x - x_k) + \frac{1}{2}(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)
$$

两者其实是同一个东西，只是把"数"换成了"向量和矩阵"。

---

## 一、一元 → 多元的对应关系

| 一元 | 多元 | 说明 |
|------|------|------|
| $f'(x_0)$ | $\nabla f(x_k)$ | 导数 → 梯度（向量） |
| $f''(x_0)$ | $\nabla^2 f(x_k)$ | 二阶导 → Hessian（矩阵） |
| $(x - x_0)$ | $(x - x_k)$ | 标量增量 → 向量增量 |
| $(x - x_0)^2$ | $(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)$ | 平方 → 二次型 |

---

## 二、一阶项：为什么是 $\nabla f(x_k)^\top (x - x_k)$

### 一元情形

$$
f'(x_0)(x - x_0)
$$

数乘数，顺序无所谓，结果是一个标量。

### 多元情形

$\nabla f(x_k)$ 和 $(x - x_k)$ 都是**列向量**：

$$
\nabla f(x_k) = \begin{pmatrix} \dfrac{\partial f}{\partial x_1} \\ \vdots \\ \dfrac{\partial f}{\partial x_n} \end{pmatrix}, \qquad
x - x_k = \begin{pmatrix} \Delta x_1 \\ \vdots \\ \Delta x_n \end{pmatrix}
$$

两个列向量直接相乘维度不匹配，必须一个转置成行向量才能做内积：

$$
\nabla f(x_k)^\top (x - x_k)
=
\begin{pmatrix} \dfrac{\partial f}{\partial x_1} & \cdots & \dfrac{\partial f}{\partial x_n} \end{pmatrix}
\begin{pmatrix} \Delta x_1 \\ \vdots \\ \Delta x_n \end{pmatrix}
=
\sum_{i=1}^{n} \frac{\partial f}{\partial x_i} \Delta x_i
$$

结果是一个**标量**，正好对应一元里的 $f'(x_0)(x - x_0)$。

---

## 三、二阶项：为什么是 $\frac{1}{2}(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)$

### 一元情形

$$
f''(x_0)\,(x - x_0)^2
$$

就是一个数乘一个数的平方。

### 多元情形

此时 $x - x_k$ 是一个**向量**，二阶导不再是单个 $f''$，而是由所有二阶偏导组成的 **Hessian 矩阵**：

$$
\nabla^2 f(x_k) = H = \begin{pmatrix}
\dfrac{\partial^2 f}{\partial x_1^2} & \dfrac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots \\
\dfrac{\partial^2 f}{\partial x_2 \partial x_1} & \dfrac{\partial^2 f}{\partial x_2^2} & \cdots \\
\vdots & \vdots & \ddots
\end{pmatrix}
$$

二元函数的二阶泰勒项展开出来是：

$$
\frac{1}{2}\left[ f_{xx}\Delta x^2 + 2f_{xy}\Delta x \Delta y + f_{yy}\Delta y^2 \right]
$$

这正好可以写成矩阵形式：

$$
\frac{1}{2}
\begin{pmatrix} \Delta x & \Delta y \end{pmatrix}
\begin{pmatrix} f_{xx} & f_{xy} \\ f_{xy} & f_{yy} \end{pmatrix}
\begin{pmatrix} \Delta x \\ \Delta y \end{pmatrix}
=
\frac{1}{2}(x - x_k)^\top H (x - x_k)
$$

所以 $(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)$ 就是一元里 $f''(x_0)(x - x_0)^2$ 的多元推广，它叫**二次型**。

---

## 四、一句话总结

> 多元泰勒展开不是新公式，而是把一元的"数"升级成"向量/矩阵"：
>
> - **一阶项**：$f'(x_0)(x - x_0)$ → $\nabla f(x_k)^\top (x - x_k)$
> - **二阶项**：$\frac{1}{2}f''(x_0)(x - x_0)^2$ → $\frac{1}{2}(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)$
>
> 那个 $\frac{1}{2}$ 一直都在，只是二阶导从数变成了矩阵，平方变成了二次型。



谨记：阶数越高，多项式越贴合原函数，多项式越贴合原函数。无穷阶是精确等于

## 带余项的泰勒展开：一元 vs 多元

前面的展开都是有限阶近似，最后用余项 $R_n$ 表示被忽略的部分。写成完整形式就是：

### 一元泰勒展开（带余项）

$$
f(x) = f(x_0) + f'(x_0)(x - x_0) + \frac{1}{2!}f''(x_0)(x - x_0)^2 + \cdots + \frac{1}{n!}f^{(n)}(x_0)(x - x_0)^n + R_n(x)
$$

$$
f(x) = \sum_{k=0}^{n} \frac{f^{(k)}(x_0)}{k!}(x - x_0)^k + R_n(x)
$$

其中余项 $R_n(x)$ 常见有两种写法。

#### 拉格朗日余项

$$
R_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x - x_0)^{n+1}, \qquad \xi \text{ 在 } x_0 \text{ 与 } x \text{ 之间}
$$

#### 佩亚诺余项

$$
R_n(x) = o\big((x - x_0)^n\big), \qquad x \to x_0
$$

---

### 多元泰勒展开（带余项）

$$
f(x) = f(x_k) + \nabla f(x_k)^\top (x - x_k) + \frac{1}{2!}(x - x_k)^\top \nabla^2 f(x_k)(x - x_k) + \cdots + R_n(x)
$$

更紧凑地，用多重指标记号为：

$$
f(x) = \sum_{|\alpha| \le n} \frac{D^\alpha f(x_k)}{\alpha!}(x - x_k)^\alpha + R_n(x)
$$

其中：

- $\alpha = (\alpha_1, \dots, \alpha_m)$ 是多重指标
- $|\alpha| = \alpha_1 + \cdots + \alpha_m$
- $\alpha! = \alpha_1! \cdots \alpha_m!$
- $(x - x_k)^\alpha = (x_1 - x_{k,1})^{\alpha_1} \cdots (x_m - x_{k,m})^{\alpha_m}$
- $D^\alpha f = \dfrac{\partial^{|\alpha|} f}{\partial x_1^{\alpha_1} \cdots \partial x_m^{\alpha_m}}$

#### 拉格朗日余项（多元）

$$
R_n(x) = \sum_{|\alpha| = n+1} \frac{D^\alpha f(\xi)}{\alpha!}(x - x_k)^\alpha, \qquad \xi \text{ 在 } x_k \text{ 与 } x \text{ 的连线上}
$$

#### 佩亚诺余项（多元）

$$
R_n(x) = o\big(\|x - x_k\|^n\big), \qquad x \to x_k
$$

---

## 一元 → 多元 余项对应

| 项目   | 一元                         | 多元                                                                                |
| ---- | -------------------------- | --------------------------------------------------------------------------------- |
| 求和指标 | $k$                        | 多重指标 $\alpha = (\alpha_1, \dots, \alpha_m)$                                       |
| 求和范围 | $k = 0, 1, \dots, n$       | $\Vert\alpha\Vert \le n$，即 $\alpha_1 + \cdots + \alpha_m \le n$                         |
| 系数   | $\dfrac{f^{(k)}(x_0)}{k!}$ | $\dfrac{D^\alpha f(x_k)}{\alpha!}$                                                |
| 增量幂  | $(x - x_0)^k$              | $(x - x_k)^\alpha = (x_1 - x_{k,1})^{\alpha_1} \cdots (x_m - x_{k,m})^{\alpha_m}$ |
| 余项   | $R_n(x)$                   | $R_n(x)$                                                                          |



| 项目 | 一元 | 多元 |
|------|------|------|
| 第 $k$ 项系数 | $\dfrac{f^{(k)}(x_0)}{k!}$ | $\dfrac{D^\alpha f(x_k)}{\alpha!}$，$ \vert \alpha\vert  = k$ |
| 第 $k$ 项增量 | $(x - x_0)^k$ | $(x - x_k)^\alpha$ |
| 求和范围 | $k = 0, 1, \dots, n$ | $ \vert \alpha\vert  \le n$ |
| 拉格朗日余项 | $\dfrac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1}$ | $\sum_{ \vert \alpha\vert =n+1} \dfrac{D^\alpha f(\xi)}{\alpha!}(x-x_k)^\alpha$ |
| 佩亚诺余项 | $o\big((x-x_0)^n\big)$ | $o\big(\ \vert x-x_k\Vert^n\big)$ |

---

## 前三阶显式对照

| 阶数 | 一元 | 多元 |
|------|------|------|
| 零阶 | $f(x_0)$ | $f(x_k)$ |
| 一阶 | $f'(x_0)(x - x_0)$ | $\nabla f(x_k)^\top (x - x_k)$ |
| 二阶 | $\dfrac{1}{2!}f''(x_0)(x - x_0)^2$ | $\dfrac{1}{2!}(x - x_k)^\top \nabla^2 f(x_k)(x - x_k)$ |
| 三阶 | $\dfrac{1}{3!}f'''(x_0)(x - x_0)^3$ | $\dfrac{1}{3!}\sum_{ \vert \alpha\vert =3} D^\alpha f(x_k)(x-x_k)^\alpha$ |
| 余项 | $R_n(x)$ | $R_n(x)$ |

---


## 一句话总结
> 一元泰勒展开用单个整数 $k$ 求和；多元泰勒展开用多重指标 $\alpha$ 求和。
> 把 $k$ 换成 $\alpha$、$f^{(k)}$ 换成 $D^\alpha$、$k!$ 换成 $\alpha!$、$(x-x_0)^k$ 换成 $(x-x_k)^\alpha$，就是多元版本。


> 多元泰勒展开的余项，本质就是把一元的：
>
> - $f^{(n+1)}(\xi)$ → 所有 $n+1$ 阶偏导 $D^\alpha f(\xi)$
> - $(x-x_0)^{n+1}$ → 所有 $n+1$ 次单项式 $(x-x_k)^\alpha$
> - $\dfrac{1}{(n+1)!}$ → $\dfrac{1}{\alpha!}$
>
> 然后对所有 $|\alpha| = n+1$ 的多重指标求和。佩亚诺余项则把一元的 $(x-x_0)^n$ 换成多元的 $\|x-x_k\|^n$。


Rn 是余项（截断误差），知道误差有多大，不会超过多少

$\xi$：数学定理保证它一定存在
虽然不知道它具体多少，但是可以估算误差上限
距离 x 0 的
距离越大误差越大
距离越小误差越小

（n+1）!:缩放误差

## 拉格朗日余项的误差上界

### 公式

$$
|R_n| \le \frac{M}{(n+1)!}|x - x_0|^{n+1}
$$

### 来源

拉格朗日余项原本是：

$$
R_n = \frac{f^{(n+1)}(\xi)}{(n+1)!}(x - x_0)^{n+1}, \qquad \xi \text{ 在 } x_0 \text{ 与 } x \text{ 之间}
$$

问题在于：$\xi$ 具体在哪我们不知道，所以 $f^{(n+1)}(\xi)$ 也算不出来。于是我们退一步，不去求它的精确值，而是找一个**上界** $M$，使得：

f(n+1)阶导数在整个区间的（x 0,x）最大值
$$
|f^{(n+1)}(\xi)| \le M
$$

这样就能得到误差的**最坏情况估计**：

$$
|R_n| \le \frac{M}{(n+1)!}|x - x_0|^{n+1}
$$
### 各项含义
| 符号                  | 含义                                         |
| ------------------- | ------------------------------------------ |
| $M$                 | $n+1$ 阶导数在区间上的一个上界，即 $\Vertf^{(n+1)}\Vert \le M$ |
| $(n+1)!$            | 阶乘，增长极快，使误差迅速缩小                            |
| $\Vertx - x_0\Vert^{n+1}$ | 计算点到展开中心距离的 $n+1$ 次方                       |
| $\VertR_n\Vert$           | 实际误差的绝对值                                   |

### 直观理解

- 我们不知道 $\xi$ 在哪，所以不知道 $f^{(n+1)}(\xi)$ 具体多大。
- 但如果我们知道 $n+1$ 阶导数在区间上**最大不超过 $M$**，就能保证误差不超过右边这个值。
- 距离 $|x - x_0|$ 越远，误差上界越大；距离越近，误差上界越小。

### 一句话总结

> 这是拉格朗日余项的**误差估计式**：用 $n+1$ 阶导数的上界 $M$ 代替未知的 $f^{(n+1)}(\xi)$，从而给出误差的**最坏情况上界**。


拉格朗日余项一般写作：

$$
R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}x^{n+1}
$$

其中 $\xi$ 在 $0$ 与 $x$ 之间。

## 1. $e^x$

$$
e^x=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\cdots+\frac{x^n}{n!}+R_n(x)
$$

$$
R_n(x)=\frac{e^\xi}{(n+1)!}x^{n+1}
$$

---

## 2. $\sin x$

$$
\sin x=x-\frac{x^3}{3!}+\frac{x^5}{5!}-\cdots+\frac{(-1)^k x^{2k+1}}{(2k+1)!}+R_{2k+1}(x)
$$

$$
R_{2k+1}(x)=\frac{(-1)^{k+1}\cos \xi}{(2k+2)!}x^{2k+2}
$$

---

## 3. $\cos x$

$$
\cos x=1-\frac{x^2}{2!}+\frac{x^4}{4!}-\cdots+\frac{(-1)^k x^{2k}}{(2k)!}+R_{2k}(x)
$$

$$
R_{2k}(x)=\frac{(-1)^{k+1}\cos \xi}{(2k+1)!}x^{2k+1}
$$

---

## 4. $\ln(1+x)$，$x>-1$

$$
\ln(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\cdots+\frac{(-1)^{n-1}x^n}{n}+R_n(x)
$$

$$
R_n(x)=\frac{(-1)^n x^{n+1}}{(n+1)(1+\xi)^{n+1}}
$$

---

## 5. $(1+x)^a$

$$
(1+x)^a=1+ax+\frac{a(a-1)}{2!}x^2+\cdots+\frac{a(a-1)\cdots(a-n+1)}{n!}x^n+R_n(x)
$$

$$
R_n(x)=\frac{a(a-1)\cdots(a-n)}{(n+1)!}(1+\xi)^{a-n-1}x^{n+1}
$$

---

## 6. $\frac{1}{1-x}$，$|x|<1$

$$
\frac{1}{1-x}=1+x+x^2+\cdots+x^n+R_n(x)
$$
$$
R_n(x)=\frac{x^{n+1}}{(1-\xi)^{n+2}}
$$
