你的身体有一个奇特的特性:你可以从单个细胞中获取关于该有机体的信息。 整个 从单个细胞中了解有机体。挑一个细胞,潜入细胞核,提取DNA。现在你就可以从那个微小的样本中重新培育出整个生物。
这里有一个数学类比。取一个函数,选定一个具体点,然后深入进去。你可以从一个点中提取足够的数据来重建整个函数。哇,就像从一帧画面重新制作整部电影一样。
泰勒级数(Taylor Series)发现了函数背后的"数学DNA",让我们能够从单个数据点重建它。让我们看看它是如何工作的。

从一点提取信息
给定一个函数如$f(x) = x^2$,我们可以在单个位置发现什么?
通常我们期望计算一个单一的值,比如$f(4) = 16$。但表面之下还有更多:
- $f(x)$ = 函数在点$x$处的值
- $f'(x)$ = 一阶导数,表示函数变化的速度(速度)
- $f''(x)$ = 二阶导数,表示 变化 变化的速度(加速度)
- $f'''(x)$ = 三阶导数,表示 变化 变化的变化的速度(加速度的加速度)
- 依此类推
研究一个点会揭示关于行为的多个(可能是无限的)信息片段。(有些函数在一个点上有无穷多的数据(导数(derivative))。)
那么,有了所有这些信息,我们该怎么做?当然是从一个细胞重新培育有机体!((此处应有疯狂的笑声。))
从一点生长函数
我们的计划是从一个起点开始生长出一个函数。但我们如何通用地描述任意函数呢?
顿悟时刻:想象任何函数,其核心都是一个多项式(可能有无穷多项):
![]()
为了重建我们的函数,我们从固定点($c_0$)开始,并根据输入的值添加一系列其他项(如$c_1x$)。"DNA"就是精确描述我们函数的$c_0, c_1, c_2, c_3$这些值。
好了,我们有了一个通用的"函数格式"。但如何找到特定函数的系数,比如 sin(x) (单位圆上角度x的高度)?如何提取它的DNA?
是时候见证0的魔力了。
让我们从代入$x=0$处的函数值开始。这样做,我们得到:
![]()
除了$c_0$之外所有项都消失了,这很合理:我们蓝图的起点应该是$f(0)$。对于$f(x) = \sin(x)$,我们可以算出$c_0 = \sin(0) = 0$。我们得到了第一段DNA!
获取更多DNA
既然我们知道$c_0$,如何在这个方程中分离出$c_1$?
![]()
嗯。有几个想法:
我们可以令 $x = 1$ 吗?这样得到 $f(1) = c_0 + c_1(1) + c_2(1^2) + c_3(1^3) + \cdots$。虽然我们知道 $c_0$,但其他常数都加在一起了,无法单独分离出 $c_1$。
如果我们除以 $x$ 会怎样?得到:
![]()
然后我们可以令 $x=0$ 让其他项消失……对吗?这个想法不错,但问题是我们现在除以了零。
嗯。这个方法已经很接近了。我们怎样才能 几乎 除以零? 使用导数!
如果我们对 $f(x)$ 的蓝图求导,得到:
![]()
![]()
每个幂次都减 1,而常数项 $c_0$ 变为零。这简直太方便了。
现在我们可以用之前的 $x=0$ 技巧来分离出 $c_1$:
![]()
在我们的例子中,$\sin'(x) = \cos(x)$,所以我们计算:$f'(0) = \sin'(0) = \cos(0) = 1 = c_1$
耶,又多了一点点 DNA!这就是泰勒级数的魔力:通过反复求导并令 $x = 0$,我们可以提取出多项式的 DNA。
我们再来一轮:
![]()
取二阶导数后,幂次再次降低。前两项($c_0$ 和 $c_1x$)消失了,我们可以再次令 $x=0$ 来分离出 $c_2$:
![]()
对于我们的正弦例子,$\sin'' = -\sin$,所以:
![]()
即 $c_2 = 0$。
随着我们不断求导,我们执行了更多乘法,每个项前面会累积一个阶乘(1!,2!,3!)。
函数在点x=0附近的泰勒级数为:
![]()
(严格来说,在点 $x=0$ 附近的泰勒级数称为麦克劳林级数。)
从任意点a出发的广义泰勒级数为:
![]()
思路是一样的。我们不再使用常规蓝图,而是使用:
![]()
因为我们是从 $f(a)$ 展开,所以 $f(a) = c_0 + 0 + 0 + \dots = c_0$。其他系数可以通过求导并令 $x = a$(而不是 $x=0$)来提取。
示例:sin(x)的泰勒级数
将导数代入上述公式,得到 $\sin(x)$ 在 $x = 0$ 附近的泰勒级数:
![]()
下面是它的样子:

几点说明:
1) 正弦函数有无限多项
正弦(Sine)是一个无穷波,正如你所猜测的,它需要无穷多项才能持续下去。更简单的函数(如 $f(x) = x^2 + 3$)已经处于它们的“多项式格式”中,不需要无穷阶导数来维持DNA。
2) 正弦函数每隔一项缺失
如果我们反复对正弦在 x = 0 处求导,得到:
![]()
值为:
![]()
忽略除以阶乘,我们得到模式:
![]()
因此正弦的DNA类似于 [0, 1, 0, -1] 重复。
3) 不同的起始位置有不同的DNA
作为趣味,这里是 $\sin(x)$ 在 $x =\pi$ 处的泰勒级数(Taylor series)(链接):

几点说明:
现在DNA类似于 [0, -1, 0, 1]。循环类似,但由于我们从 $x=\pi$ 开始,起始值发生了变化。
写成计算后的数字,分母 1, 6, 120, 5040 看起来很奇怪。但它们只是每隔一个阶乘:1! = 1, 3! = 6, 5! =120, 7! = 5040。一般来说,泰勒级数的分母可能很复杂。
- $O(x^{12})$ 项表示存在其他阶(幂次)为 $x^{12}$ 及更高的分量。因为 $\sin(x)$ 有无穷多阶导数,所以有无穷多项,计算机必须在某处截断。(今天你受够了泰勒展开(Tayloring)了,伙计。)
应用:函数逼近
泰勒级数的一个常见用途是快速近似一个函数。如果你想要一只蝌蚪,你需要整只青蛙的DNA吗?

泰勒级数有一系列项,通常按重要性排序:
![]()
- $c_0 = f(0)$,常数项,是函数在该点的精确值
- $c_1 = f'(0)x$,线性项,告诉我们要从该点以什么速度移动
- $c_2= \frac{f''(0)}{2!}x^2 $,二次项,告诉我们从该点加速离开的程度
- 依此类推
如果我们只需要预测点周围几个瞬间的情况,初始位置和速度可能就足够了:
![]()
如果我们要追踪更长时间,那么加速度(Acceleration)就变得重要了:
![]()
随着我们远离起始点,我们需要更多项来保持预测的准确性。例如,线性模型 $\sin(x) = x$ 在 $x=0$ 附近是一个好的预测。随着我们走得更远,我们需要考虑更多项。
类似地,$e^x \sim 1 + x$ 对于小利率效果很好:1% 离散利率在一个时间周期后是 1.01,1% 连续利率比 1.01 略高。随着时间的推移,线性模型落后了,因为它忽略了复利效应(Compounding Effects)。
应用:函数比较
DNA的一个常见应用是什么?亲子鉴定(Paternity Tests)。
如果我们有几个函数,可以比较它们的泰勒级数,看看它们是否相关。
以下是 $\sin(x)$、$\cos(x)$ 和 $e^x$ 的展开式:
![]()
![]()
![]()
这些序列有家族相似性,对吧?干净的 $x$ 的幂除以阶乘?
一个问题是 $e^x$ 的序列项都是正的,而正弦和余弦交替符号。我们如何将它们联系起来?
欧拉(Euler)的伟大洞察在于意识到一个 虚数(imaginary number) 可以将符号从正号改为负号:
![{\begin{aligned}e^{ix}&=1+ix+{\frac {(ix)^{2}}{2!}}+{\frac {(ix)^{3}}{3!}}+{\frac {(ix)^{4}}{4!}}+{\frac {(ix)^{5}}{5!}}+{\frac {(ix)^{6}}{6!}}+{\frac {(ix)^{7}}{7!}}+{\frac {(ix)^{8}}{8!}}+\cdots \\[8pt]&=1+ix-{\frac {x^{2}}{2!}}-{\frac {ix^{3}}{3!}}+{\frac {x^{4}}{4!}}+{\frac {ix^{5}}{5!}}-{\frac {x^{6}}{6!}}-{\frac {ix^{7}}{7!}}+{\frac {x^{8}}{8!}}+\cdots \\[8pt]&=\left(1-{\frac {x^{2}}{2!}}+{\frac {x^{4}}{4!}}-{\frac {x^{6}}{6!}}+{\frac {x^{8}}{8!}}-\cdots \right)+i\left(x-{\frac {x^{3}}{3!}}+{\frac {x^{5}}{5!}}-{\frac {x^{7}}{7!}}+\cdots \right)\\[8pt]&=\cos x+i\sin x.\end{aligned}}](../../wp-content/plugins/wp-latexrender/pictures/cf7a66a77e3612eab7cde26914da2c7e.png)
哇。使用虚数指数并分解为奇/偶次幂,揭示了正弦和余弦其实隐藏在指数函数中。太神奇了。
虽然这个证明 欧拉公式(Euler's Formula) 没有展示 为什么 虚数是有意义的,但它揭示了幕后隐藏的“老祖宗”。
附录:各种顿悟时刻
与傅里叶级数的关系
泰勒级数提取了函数的“多项式DNA”,而 傅里叶级数/变换 提取了函数的“圆形DNA”。两者都将函数视为由更小的部分(多项式或指数路径)构建而成。
泰勒级数总是有效吗?
这涉及到我能力范围之外的数学分析,但某些函数不容易(甚至永远不能)用多项式近似。
注意,像 $x^2, x^3$ 这样的幂次随着 $x$ 增长而爆炸。为了获得缓慢、渐进的曲线,你需要一支多项式项组成的军队来相互竞争,仅有一个获胜者勉强胜出。如果你过早停止训练,近似值又会爆炸。
例如,这里是 $\ln(1 + x)$ 的泰勒级数。黑线是我们想要的曲线,添加更多项,甚至几十项,也只能勉强在 $x=1.0$ 附近获得精确度。用这些想要疯狂失控的项来维持平缓斜率实在太难了。

在这种情况下,我们只有一个收敛半径,近似值在此半径内保持准确(例如在 $|x| < 1$ 附近)。
将几何定义转化为代数定义
正弦通常用几何定义:圆图形上一条线的高度。

将其转化为方程似乎非常困难。泰勒级数给了我们一个过程:如果我们知道单个值及其变化方式(导数),我们就可以反向工程出DNA。
类似地,将 $e^x$ 描述为“导数等于当前值的函数”产生了DNA [1, 1, 1, 1] 和多项式 $f(x) = 1 + \frac{1}{1!}x + \frac{1}{2!}x^2 + \frac{1}{3!}x^3 + \dots $。我们从一个文字描述得到了一个方程。
呼!有几件事需要思考。
数学愉快。