泰勒公式与麦克劳林公式

泰勒公式\(P_n(x)\)

泰勒公式允许用多项式来近似复杂的函数,这在算法中有时用于简化计算。例如,在高斯过程回归和一些其他贝叶斯方法中,泰勒展开用于线性化关于后验的计算。

泰勒公式的本质是用简单的多项式来近似拟合复杂的函数。

先回忆一下微分:

$$\frac{f(x_0+ \Delta x) – f(x_0)}{\Delta x} \approx f'(x_0)$$

若\(f'(x_0)\)存在,在\(x_0\)附近有\(f(x_0+ \Delta x)-f(x_0)\approx f'(x_0)\Delta x\),令\(\Delta x=x-x_0\),将\(\Delta x\)代入上式整理得到:

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

这就是泰勒公式思想的起源,即使函数\(f(x)\)可能是一个很复杂的函数,甚至复杂到写不出函数公式,但只要可以知道该函数中某点P的函数值\(f(x_0)\)和导数\(f'(x_0)\),就可以进行近似,进一步解释一下,首先希望近似函数能通过给定的点,比如点P的函数值\(f(x_0)\),然后,为了确保近似函数的形状与原函数相似,我们希望它们在点P的斜率是一样的,这就是求一阶导数的原因。

但是,仅仅知道在点P的斜率可能不足以描述整个函数的形状。为了更好地模拟函数的形状,可能需要考虑函数的弯曲程度,也就是凹凸性。这就是为什么要考虑二阶导数。然后,为了捕捉更多的细节,可能还需要三阶、四阶甚至更高阶的导数,导数阶数越多对函数的约束能力越强,越能拟合出一个确定的函数。所以函数\(f(x)\)在\((x=x_0)\)处的n阶泰勒公式\(P_n(x)\)可以写成:

$$f(x) \approx P_n(x)=f(x_0)+f'(x_0)(x-x_0)+\frac{f^{\prime \prime}(x_0)}{2!}(x-x_0)^2+\ldots +\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n$$

也可简写为求和符号的形式:

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

注意此处\(x_0\)只是泰勒公式的参数,属于常数,x则代表自变量。

下面想想\((x-x_0)^n\),\(n=1,2,3,\ldots \)这个多项式有什么用?

例题

例题:分别求\(f(x)=e^x\)在点\(x=0\)处的各阶多项式,如图所示:

图片[1]-泰勒公式与麦克劳林公式-点头深度学习网站
\(e^x\)在0处1阶展开
图片[2]-泰勒公式与麦克劳林公式-点头深度学习网站
\(e^x\)在0处2阶展开
图片[3]-泰勒公式与麦克劳林公式-点头深度学习网站
\(e^x\)在0处3阶展开
图片[4]-泰勒公式与麦克劳林公式-点头深度学习网站
\(e^x\)在0处8阶展开

想象用一条曲线来近似描述一座山的形状(复杂函数)。如果只使用直线(线性函数),可能只能大致描述山的一个斜坡。但如果使用了一个曲线(比如二次函数或更高次的函数),就可以更准确地描述山的轮廓。也就是说低阶项(如线性或二次项)通常在函数的起始部分起主导作用,而高阶项(如三次、四次或更高的项)在函数的远端起主导作用。这就是为什么泰勒公式中有多项式的原因。

最后解释一下阶乘\(n!\)的作用,如下图所示,分别表示\(x^2\)和\(x^9\)。当\(x\)取值较大时,\(x^2\)完全被\(x^9\)压制,\(x^9+x^2\)几乎只有\(x^9\)的特性。因此由于高阶的幂函数增长太快,需要除阶乘来减缓增速。

图片[5]-泰勒公式与麦克劳林公式-点头深度学习网站
\(x^2\)函数曲线
图片[6]-泰勒公式与麦克劳林公式-点头深度学习网站
\(x^9\)函数曲线

泰勒公式的余项\(R_n(x)\)

泰勒公式的余项\(R_n(x)\)也就是原函数\(f(x)\)与泰勒公式\(P_n(x)\)之间的差值,也就是\(P_n(x)-f(x)\)。常见的泰勒公式的余项表示方式有两种:佩亚诺余项\(o((x-x_0)^n)\)和拉格朗日余项\(\frac{f^{(n+1)}(\xi)}{(n+1)!}x^{n+1}\),其中\(\xi\)介于\(x\)与\(x_0\)之间。

$$\begin{aligned}R_n(x)&=f(x)-P_n(x)\\&=o((x-x_0)^n)&\text{(佩亚诺余项)}\\&=\frac{f^{(n+1)}(\xi)}{(n+1)!}x^{n+1}&\text{(拉格朗日余项)}\end{aligned}$$

$$\text{其中} \quad min(x,x_0)<\xi <max(x,x_0)$$

上式中佩亚诺余项\(o((x-x_0)^n)\)中的小\(o\)符号表示当\(x\)趋于\(x_0\)时,这些项可被忽略,用数学语言解释就是\(o((x-x_0)^n)\)是比\((x-x_0)^n\)高阶(可能不止一阶)的无穷小,也就是

$$\lim_{x \to x_0} \frac{o((x-x_0)^n)}{(x-x_0)^n} = 0$$

佩亚诺余项展示了泰勒公式的误差的渐近行为,主要用于数学上的理论分析。

拉格朗日余项则可用于估算泰勒公式在实际应用时的误差范围。

麦克劳林公式

麦克劳林公式是泰勒公式的简单版,即\(f(x_0)=f(0)\)时的泰勒公式:

$$\begin{aligned}f(x)=P_n(x)+R_n(x)&=\sum_{k=0}^n\frac{f^{(k)}(0)}{k!}x^k+\frac{f^{(n+1)}(\theta x)}{(n+1)!}x^{n+1} \quad (0<\theta <1)\\ f(x)\approx P_n&=\sum_{k=0}^n\frac{f^{(k)}(0)}{k!}x^k\end{aligned}$$

在上面的麦克劳林公式中,泰勒公式的参数\(x_0=0\)且拉格朗日余项\(\xi\)被写成了\(\theta x\)的形式,因此\(\theta\)的取值范围为介于\(\frac{0}{x}\)与\(\frac{x}{x}\)之间,即\((0<\theta <1)\)。这种写法使上式在估算误差时更加方便直观。

最后,再提一下泰勒公式的本质:当一个复杂函数太复杂不可求时,可以用该函数某点的值和该点的多阶导数进行拟合。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容