浅谈泰勒展开

· · 算法·理论

前言

在某一场 NOIP 模拟赛中,T1 为 EGF 板子,但我忘了 /kk,复习 EGF 的时候突然想如何证明 \sum\limits_{i=0}^{\infin}\dfrac{x^i}{i!}=e^x?再加上 T2 泰勒展开+线段树做法更是直接创爆我,遂属此文以记之。

正文

证明:\sum\limits_{i=0}^{\infin}\dfrac{x^i}{i!}=e^x

前置芝士:求导总会吧。

不会也没关系,下面给出四个要用到的东西。

$x^a$:其中 $a$ 为一个常数,$(x^a)'=ax^{a-1}$。 $C$:其中 $C$ 为一个常数,$C'=0$。 $(xy)'=x'y+y'x$,所以 $(Cx)'=Cx'$。 其中 $(x)'$ 即对 $x$ 求一次导得到的结果。 因为我们希望用一个多项式去拟合 $e^x$,所以我们直接设 $e^x=\sum\limits_{i=0}^{\infin}a_ix^i$,然后来解这些 $a_i$。 两边同时求一次导,所有的 $a_ix^i$ 变成 $ia_ix^{i-1}$,得 $$e^x=\sum_{i=0}^{\infin}(i+1)a_{i+1}x^i$$ 所以 $$\sum_{i=0}^{\infin}a_ix^i=\sum_{i=0}^{\infin}(i+1)a_{i+1}x^i$$ 即 $a_i=(i+1)a_{i+1}$。 在 $e^x=\sum\limits_{i=0}^{\infin}a_ix^i$ 中令 $x=0$,则有 $1=a_0$。 然后就知道了 $a_i=\dfrac{1}{i!}$。 这便是泰勒展开。是不是感觉肥肠简单?来不来再做个? $\sin x$ 能用什么多项式拟合?已知 $(\sin x)'=\cos x,(\cos x)'=-\sin x$。 :::info[我是题解] 按照套路,我们直接设 $\sin x=\sum\limits_{i=0}^{\infin}a_ix^i$。 两边同时求一次导,得 $$\cos x=\sum_{i=0}^{\infin}(i+1)a_{i+1}x^i$$ 再求一次导,得 $$-\sin x=\sum_{i=0}^{\infin}(i+1)(i+2)a_{i+2}x^i$$ 即 $$\sin x=\sum_{i=0}^{\infin}-(i+1)(i+2)a_{i+2}x^i=\sum_{i=0}^{\infin}a_ix^i$$ 所以 $-(i+1)(i+2)a_{i+2}=a_i$。 对于 $\sin x=\sum\limits_{i=0}^{\infin}a_ix^i$,令 $x=0$,则有 $0=a_0$,据此可知 $a_{2i}=0(i\in \Z_+)$。 对于 $\cos x=\sum\limits_{i=0}^{\infin}(i+1)a_{i+1}x^i$,令 $x=0$,则有 $1=a_1$,据此可知 $a_{2i+1}=\dfrac{(-1)^i}{(2i+1)!}(i\in \Z_+)$。 所以 $\sin x=\sum\limits_{i=0}^{\infin}\dfrac{(-1)^ix^{2i+1}}{(2i+1)!}$。 你很闲的话还可以泰勒展开一下 $\cos x$,但没必要,上式导一下即可得到 $\cos x=\sum\limits_{i=0}^{\infin}\dfrac{(-1)^ix^{2i}}{(2i)!}$。 于是我们又得到了两个三角函数的泰勒展开。 ::: 上面几个函数还是太和蔼可亲了,处处足够平滑以至于处处无限阶可导,定义域是整块 $\R$,还是太好做了((( 来一个没那么和蔼可亲的函数推广一下我们的结论。 $\ln(1+x)$ 能用什么多项式拟合?已知 $(\ln x)'=x^{-1}$,一元函数求导的链式法则为 $(f\circ g)'(x)=f'(g(x))\cdot g'(x)$,$(x+y)'=x'+y'$。 :::warning[什么是 $(f\circ g)$?] 是 $f$ 与 $g$ 的复合函数,$(f\circ g)(x)$ 等价于 $f(g(x))$。 比如 $f(x)=x^{-1},g(x)=x+1$,那么 $(f\circ g)(x)=(x+1)^{-1}$,$(f\circ g)'(x)=((x+1)^{-1})'$。 ::: :::error[为什么不去拟合 $\ln(x)$?] 喜欢我的 $a_0=\ln(0)$ 吗? ::: :::::info[我是题解] 按照套路,我们直接设 $\ln (1+x)=\sum\limits_{i=0}^{\infin}a_ix^i$。 但是先等会,别急着导(什 ::::success[我们先看一下 $(\ln(1+x))'$ 是什么玩意。] 设 $f(x)=\ln x,g(x)=1+x$,则原式 $=(f\circ g)'(x)=f'(g(x))\cdot g'(x)=\dfrac{1}{1+x}$。 :::success[再看一下 $(\dfrac{1}{1+x})'$ 是什么玩意。] 设 $f(x)=x^{-1},g(x)=1+x$,则原式 $=(f\circ g)'(x)=f'(g(x))\cdot g'(x)=-\dfrac{1}{(1+x)^2}$。 以此类推,$(1+x)$ 在求导的时候可以就当 $x$ 整。 ::: :::: 两边同时求一次导,得 $$\dfrac{1}{1+x}=\sum_{i=0}^{\infin}(i+1)a_{i+1}x^i$$ 没什么头猪,再导一次 $$-\dfrac{1}{(1+x)^2}=\sum_{i=0}^{\infin}(i+1)(i+2)a_{i+2}x^i$$ 再导! $$\dfrac{2}{(1+x)^3}=\sum_{i=0}^{\infin}(i+1)(i+2)(i+3)a_{i+3}x^i$$ …… $$(-1)^{n-1}\dfrac{(n-1)!}{(1+x)^n}=\sum_{i=0}^{\infin}\dfrac{(i+n)!}{i!}a_{i+n}x^i$$ 没招了,根本就没有循环节( 但是发现这玩意至少还是无限阶可导的,以上的式子一个式子解出一个系数,也够了! 对于 $\ln (1+x)=\sum\limits_{i=0}^{\infin}a_ix^i$,令 $x=0$,则有 $a_0=\ln(1)=0$。 对于 $\dfrac{1}{1+x}=\sum\limits_{i=0}^{\infin}(i+1)a_{i+1}x^i$,令 $x=0$,则有 $a_1=\dfrac{1}{1}=1$。 对于 $-\dfrac{1}{(1+x)^2}=\sum\limits_{i=0}^{\infin}(i+1)(i+2)a_{i+2}x^i$,令 $x=0$,则有 $2!a_2=-\dfrac{1}{1^2},a_2=-\dfrac{1}{2}$。 …… 对于 $(-1)^{n-1}\dfrac{(n-1)!}{(1+x)^n}=\sum\limits_{i=0}^{\infin}\dfrac{(i+n)!}{i!}a_{i+n}x^i$,令 $x=0$,则有 $n!a_n=(-1)^{n-1}\dfrac{(n-1)!}{1^n},a_n=\dfrac{(-1)^{n-1}}{n}$。 看来我们以一种神奇的方式得到了所有项,所以 $\ln(1+x)=\sum\limits_{i=1}^{\infin}\dfrac{(-1)^{i-1}x^i}{i}$。 还可以顺便求一下 $\ln(1-x)$! 令 $y=-x$,则 $$\ln(1+y)=\sum_{i=1}^{\infin}\dfrac{(-1)^{i-1}y^i}{i}$$ $$\ln(1-x)=\sum_{i=1}^{\infin}\dfrac{(-1)^{i-1}(-x)^i}{i}$$ $$\ln(1-x)=\sum_{i=1}^{\infin}\dfrac{(-1)^{2i-1}x^i}{i}$$ $$\ln(1-x)=-\sum_{i=1}^{\infin}\dfrac{x^i}{i}$$ ::::: 由 $\ln(1+x)$ 的推导得到启发,若 $f(x)$ 在 $x_0$ 处足够平滑(无限阶可导),则有 $$f(x)=f(x_0)+\dfrac{f'(x_0)}{1!}(x-x_0)+\dfrac{f''(x_0)}{2!}(x-x_0)^2+\dfrac{f^{(3)}(x_0)}{3!}(x-x_0)^3+\dots$$ $\ln(1+x)$ 就相当于把 $\ln x$ 左移一个单位长度使得 $x_0=0$ 处足够平滑(无限阶可导)。